静态内部类的加载和初始化问题

来源: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虚拟机规范中没有进行强制约束。

0
0

慕神7267176

2018-10-26

外部类初始化的时候不会初始化InnerClass,当内部类的静态成员变量被调换用的时候初始化InnerClass。InnerClass的初始化属于第二类。

0
0

Java设计模式精讲-Debug方式+内存分析

系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer

3430 学习 · 407 问题

查看课程