类装载条件

class只有在必须要使用的时候才会被装载.JVM不会无缘无故的装载Class类型,Java虚拟机规定,一个类或接口在初次使用前,必须要进行初始化.

主动加载的条件:

1.当 创建一个类的实例时,比如 使用new关键字,或者通过反射,克隆,反序列化;

2.当调用类的静态方法时,即当使用了字节码invokestatic指令;

3.当使用类或接口的静态字段时(final常量除外),比如,使用getstatic putstatic指令;

4.当时候用java.lang.reflect包中的方法反射类的 方法时候;

5.当初始化子类时,要求先初始化子类;

6.启动虚拟机,含有main方法的那个类;

 

除了以上情况属于主动使用,其他的情况属于被动使用,被动使用不会引起类的初始化;

你可能感兴趣的:(深入理解JVM相关知识)