在一个类编译完成之后,下一步就要开始使用类,如果要使用一个类,肯定离不开JVM。在程序执行中 JVM 通过装载、链接、初始化3个步骤完成,类的装载就是通过类加载器把.class二进制文件装入 JVM 的方法区,并在堆区创建描述该类的 java.lang.Class 对象,用来封装数据。
需要注意的是,同-一个类只会被JVM加载一次。 链接就是把二进制数据组装成可以运行的状态。
链接分为校验、准备和解析3个步骤。校验用来确认此二进制文件是否适合当前的JVM,(版本);准备就是为静态成员分配内存空间,并设置默认值; 解析指的是转换常量池的代码引用为直接引用的过程,直到所有的符号引用都可被运行程序使用(建立完整的对应关系)。完成之后,类型即可初始化,初始化之后类的对象就可以正常地使用,直到一个对象不再使用之后,将被垃圾回收,释放空间。当没有任何引用指向 Class 对象时将会被卸载,结束类的生命周期。
生命周期如图: