具体步骤:
加载->验证->准备->解析->初始化
步骤说明
加载:把二进制形式的java类型读入java虚拟机中
验证:验证类的正确性
准备:为类变量分配内存,设置默认值。直到初始化之前类变量都没有初始化为真正的初始值
解析:在类的常量池中寻找类、接口、字段和方法的引用,把这些符号引用替换为直接引用的过程
初始化:为类变量赋予正确的初始值
jvm只有在java代码中类的首次主动使用的时候才会对类初始化
主动使用介绍:
1、创建类的实例
2、访问类或接口的静态变量或对静态变量赋值
3、调用类的静态方法
4、反射
5、初始化一个类的子类
6、java虚拟机启动时被标为启动类的类