这篇博文是我在B站上发的一个科普java的视频文案整理,本来发过一次了,但是有几种不严谨的地方只能删掉重新发了一下,内容如标题,感兴趣的码农朋友可以观看视频的版本,欢迎提提意见啥的,感谢~https://www.bilibili.com/video/av82152291/ 在过去短短几十年间,伴随着互联网的兴起和磅礴发展, 编程语言也在同步进行着变革和演化, 从机器语言出现,到1956年真正意义上的编程语言fortran诞生直到今天, 根据我在业余搜索引擎百度上进行搜索的结果来看, 目前世界上一…
这篇文章是我在B站上投稿的一个科普java的视频文案,内容如标题,感兴趣的码农朋友可以移步观看https://www.bilibili.com/video/av81171108/ 在过去短短几十年间,伴随着互联网的兴起和磅礴发展, 编程语言也在同步进行着变革和演化, 从机器语言出现,到1956年真正意义上的编程语言fortran诞生直到今天, 根据我在业余搜索引擎百度上进行搜索的结果来看, 目前世界上一 共有600多种编程语言 坦白讲,当我第一次看到这个数据时,我自闭了 作为一个咸鱼程序员 满打…
动态代理类原理(示例代码参见java反射机制剖析(三)) a)  理解上面的动态代理示例流程 a)  理解上面的动态代理示例流程 b)  代理接口实现类源代码剖析 咱们一起来剖析一下代理实现类($Proxy0)的源代码和整个动态代理的流程. $Proxy0生成的代码如下: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; impo…
通过Java反射机制剖析(一)和Java反射机制剖析(二)的学习,已经对反射有了一定的了解,这一篇通过动态代理的例子来进一步学习反射机制. 1.     代理模式 代理模式就是为其他对象提供一种代理来控制对这个对象的访问.其实代理模式是在访问的对象时引入一定程度的间接性,这种间接性可以附加多种用途. 它 的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会 存在关联关系,一个代理类的对象与一个委托类的对象…
从<java反射机制剖析(一)>的API我们看到了许多接口和类,我们能够通过这些接口做些什么呢? 从上篇API中我们能看到它能够完成下面的这些功能: 1)     获得类 A.     运用getClass()  (每个class都有此函数) i.    String str = "abc"; ii.    Class c1 = str.getClass(); B.     运用Class.forName() (static method 最常被使用) i.    Clas…
1.     什么是Java反射机制 Java的反射机制是在程序运行时,能够完全知道任何一个类,及其它的属性和方法,并且能够任意调用一个对象的属性和方法.这种运行时的动态获取就是Java的反射机制.其实这也是Java是动态语言的一个象征. 用一句话来概括反射就是加载一个运行时才知道的类以及它的完整内部结构. 2.     为什么要有Java反射机制 我们为什么要用Java的反射机制呢? 我认为有两种: 第一种:反射的目的就是为了扩展未知的应用.比如你写了一个程序,这个程序定义了一些接口,只要实现…
本博客将从源码的角度带领大家学习TreeSet相关的知识. 一TreeSet类的定义: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable 可以看到TreeSet是继承自AbstracSet同时实现了NavigableSet,Cloneable,Serializable三个接口,其中Cloneable,Seri…
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本.本博客将从源码角度带领大家学习关于HashSet的知识. 一HashSet的定义: public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable 可以看到HashSet继承自AbstractSet同时实现了Set,Cloneable,Serializable三个接口,…
背景: 调用java提供接口,需要长时间整形作为验证. 预备知识: 1. java 的 System.currentTimeMillis() 计算的长整型,是从1970年1月1日开始,截止当前的毫秒数. 2.C#中计算毫秒数的方法 TimeSpan.TotalMilliseconds 3.我天朝是东八区,时区也要计算在内.所以起始期间应为1970年1月1日8:00 代码: /// <summary> /// 计算当前长时间整形   /// </summary> private lo…
一.目录 1.启蒙知识预热:CAS原理+JVM对象头内存存储结构 2.JVM中锁优化:锁粗化.锁消除.偏向锁.轻量级锁.自旋锁. 3.总结:偏向锁.轻量级锁,重量级锁的优缺点. 二.启蒙知识预热 开启本文之前先介绍2个概念 2.1.cas操作 为了提高性能,JVM很多操作都依赖CAS实现,一种乐观锁的实现.本文锁优化中用到了CAS,故有必要先分析一下CAS的实现. CAS:Compare and Swap. JNI来完成CPU指令的操作: unsafe.compareAndSwapInt(thi…