JVM 对类进行初始化的六种情况
1. 使用 New 关键字实例化对象的时候。
2. 读取或设置一个类的静态字段的时候。
3. 调用一个类的静态方法的时候。
4. 通过java.lang.reflect包中的方法对类进行反射调用的时候。
5. 当初始化一个类时,发现其父类还没有进行初始化,则需要先触发其父类初始化。
6. 当虚拟机启动时,用户需要指定一个要执行的包含 main 方法的主类,虚拟机会初始化这个主类。
参考:《深入理解Java虚拟机》
1. 使用 New 关键字实例化对象的时候。
2. 读取或设置一个类的静态字段的时候。
3. 调用一个类的静态方法的时候。
4. 通过java.lang.reflect包中的方法对类进行反射调用的时候。
5. 当初始化一个类时,发现其父类还没有进行初始化,则需要先触发其父类初始化。
6. 当虚拟机启动时,用户需要指定一个要执行的包含 main 方法的主类,虚拟机会初始化这个主类。
参考:《深入理解Java虚拟机》