类加载的类初始化的6种场景
对于类的初始化阶段,虚拟机严格规定了有且只有6种情况必须的对类进行"初始化":
1.遇到new、getstatic、putstatic或invokestatic这四条字节码指令的时候,如果类没有进行初始化,则需要先触发其初始化.
生成这四条指令的最常见的java代码场景是;
使用new关键字实例化对象的时候
读取或设置一个类的静态字段(被final修饰、已在编译期把结果放入常量池的静态字段除外)的时候
调用一个类的静态方法的时候
2.使用java.lang.reflect包的方法对类进行反射调用的
原创
2020-06-18 09:07:40 ·
574 阅读 ·
0 评论