类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:
1.加载
2.验证
3.准备
4.解析
5.初始化
6.使用
7.`卸载
因为对于加载部分,java虚拟机规范中并没有强制约束,这点可以交给虚拟机的具体实现自由把握。对于Sun HotSpot虚拟机来说,可以通过-XX:+TraceClassLoading参数观察类的加载。
其中加载 验证 准备 初始化 和卸载这5个步骤是固定的,而解析 使用则不一定,
解析阶段在某些情况下可以在初始化阶段之后再开始,这是为了java语言的运行时绑定(也称为动态绑定,或晚绑定)。这些阶段通常都是交织在一起的混合使用进行的,通常会在一个阶段执行的过程中,调用激活另一个。