主动使用:
1、创建类的实例
2、访问某个类或接口的静态变量,或对其赋值
3、调用类静态方法
4、反射
5、初始化类的子类
6、虚拟机启动时表明为启动类的类
7、JDK7开始提供的动态语言支持:
java.lang.invoke.MethodHandle实例的解析结果
REF_getStatic、REF_putStatic、REF_invokeStatic句柄对应的类没有初始化,则初始化
被动使用:除以上方法,都是被动使用,都不会导致类的初始化。
主动使用:
1、创建类的实例
2、访问某个类或接口的静态变量,或对其赋值
3、调用类静态方法
4、反射
5、初始化类的子类
6、虚拟机启动时表明为启动类的类
7、JDK7开始提供的动态语言支持:
java.lang.invoke.MethodHandle实例的解析结果
REF_getStatic、REF_putStatic、REF_invokeStatic句柄对应的类没有初始化,则初始化
被动使用:除以上方法,都是被动使用,都不会导致类的初始化。