加载
1)通过一个类的全限定名来获取定义此类的二进制字节流。
2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。
3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入 口。
验证
目的是确保Class文件的字节流中包含的信息符合《Java虚 拟机规范》的全部约束要求。
文件格式验证
元数据验证
字节码验证
符号引用验证
准备
正式为类中定义的变量(即静态变量,被static修饰的变量)分配内存并设置类变量初始值的阶段
解析
Java虚拟机将常量池内的符号引用替换为直接引用的过程
初始化
真正开始执行类中编写的Java程序代码,将主导权移交给应用程序。