静态内部类的加载和初始化问题
来源:8-4 单例设计模式-静态内部类-基于类初始化的延迟加载解决方案及原理解析
马斯克2048
2018-10-25
//5种情况,首次发生时,一个类将被立刻初始化,类是泛指,包括接口
//1.A类的一个实例被创建
//2.A类中的一个静态方法被调用
//3.A类中声明的一个静态成员被赋值
//4.A类中声明的一个静态成员被使用,并且不是常量成员
//5.A类如果是顶级类,其中有嵌套断言语句
那么这个静态内部类懒汉模式,是第几个呢? 4?
另外InnerClass这个类被加载和被初始化是两个不同概念和时间点吧?两个分别是何时呢?
写回答
2回答
-
new_chapter
2019-03-19
内部类懒汉模式,对应 4.类中的一个静态成员被使用。
对类的加载,java虚拟机规范中没有进行强制约束。
00 -
慕神7267176
2018-10-26
外部类初始化的时候不会初始化InnerClass,当内部类的静态成员变量被调换用的时候初始化InnerClass。InnerClass的初始化属于第二类。
00
相似问题