本文参考了周志明的《深入理解java虚拟机》,写的非常好!
类型初始化的时机-主动使用:
- 使用new实例化一个对象的时候。
- 调用一个类的静态方法。
- 调用一个类的静态字段(非编译期已知的常量)。
- 使用反射调用其相应方法的时候。
- 带有main方法的类。
- 调用一个类的子类,父类还没有初始化。
不会引起类型初始化的时机-被动使用:
- 调用一个类的static final编译期已知的常量时。
- 通过子类调用父类的static常量
- 使用类型数组定义
本文参考了周志明的《深入理解java虚拟机》,写的非常好!
类型初始化的时机-主动使用:
- 使用new实例化一个对象的时候。
- 调用一个类的静态方法。
- 调用一个类的静态字段(非编译期已知的常量)。
- 使用反射调用其相应方法的时候。
- 带有main方法的类。
- 调用一个类的子类,父类还没有初始化。
不会引起类型初始化的时机-被动使用: