类加载的时机

类加载的时机

有且只有遇到 new ,getstatic , putstatic, invokestatic 这四个字节码指令时,如果类没有初始化,会触发其的初始化。这4条字节码指令的java场景时:

1 new 实例, 读取或设置一个 static 静态字段 (final 修饰的static字段除外,这个字段在编译期就放入了常量池的静态字段了。),以及调用一个类的静态方法的时候。

2 反射调用的的时候,如果没有初始化,需要先触发其初始化。

3 初始化类的时候,发现其父类没有初始化,需要** 先 **触发父类的初始化,才开始初始化子类。

4 虚拟机会最先初始化 进入的main 的主类
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容