摘要:
单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举 懒汉式线程不安全 懒汉式,线程安全 双重检验锁 事实上在 JVM 中这句话大概做了下面 3 件事情。 理解以上三个过程很重要,能直接通过字节码的角度让你知道 JVM的指令重排序;相关知识点最好了解一下,比如单线程访问尽管指令重排序 但还是 阅读全文
posted @ 2018-11-30 12:04
陶朱公Boy
阅读(345)
评论(0)
推荐(0)
摘要:
遇到new 、getstatic、putstatic或invokestatic者四条字节码指令时,如果类没有进行初始化,则需要先触发其初始化。对应的JAVA代码场景是
new 实例对象、读取或设置一个类的静态字段[被final修饰、已在编译器把结果放入常量池的静态字段除外]时候,以及调用一个类的静态方法的时候
使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则先触发其初始化
当初始化一个类的时候,如果发现父类还没有过初始化,则需要其先触发其父类的初始化
当虚拟机启动时,用户需要指定一个要执行的主类(包含main方法的那个类)虚拟机先初始化这个主类
当使用jdk1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REF_getStatic,REF_putStatic、REF_invokeStatic的方法句柄,并且这个方法句柄所对应类没有进行过初始化,则先触发其初始化 阅读全文
posted @ 2018-11-30 11:35
陶朱公Boy
阅读(158)
评论(0)
推荐(0)

浙公网安备 33010602011771号