类加载共包括5个阶段:加载 -> 验证 -> 准备 -> 解析 -> 初始化。
加载:
1.通过一个类的全限定名来获取这个类的Class文件
2.将Class文件转化为特定的数据结构,存放在方法区
3.在方法区创建一个该类的Class对象,用于对外提供接口
验证:
1.文件格式验证
2.元数据验证
3.字节码验证
4.符号引用验证
准备:
1.为已经在方法区中的类中的静态成员变量分配内存
2.为静态成员变量设置初始值
解析:
虚拟机将常量池中的符号引用替换为直接引用的过程
初始化:
初始化阶段就是执行类构造器clini()的过程