类型(一般指类或接口)从加载到虚拟机内存到从内存中卸载的整个生命周期会经历加载、验证、准备、解析、初始化、使用和卸载七个阶段,包括验证、准备和解析三个阶段,通过连接连接在一起。
其中加载、验证、准备、初始化、卸载五个步骤定义了顺序,加载过程的类型必须遵循这个顺序。(加载和连接交错,加载总是在连接之前开始)。
解析位置不固定。在某些情况下,它可以在初始化阶段之后启动,以支持Java语言的运行时绑定(还有动态绑定和扩展绑定)。
Java虚拟机规范并没有规定什么情况下应该启动第一步类加载过程,这可以由虚拟机实现自由控制。
初始化阶段严格建议只有六种情况应该立即初始化类:
对于这六种触发类初始化的情况,是有行为的。据说很活跃。另外,所有引用方法都不会触发初始化,称为被动指针。
以下三种场景是被动功能的典型场景:
除非接口被初始化,否则在使用类时不应初始化其所有父接口。
上一篇:夜神安卓模拟器吃内存吗
下一篇:华为数据中心在哪里