类加载过程:
加载:在加载阶段虚拟机需要完成以下3件事:
1)通过一个类的全限定名来获取定义此类的二进制字节流
2)将这个字节流所代表的静态存储结构转化为方法区的运行
时结构
3)在java堆中生成一个代表这个类的java.lang.Class对象>,作为方法区的数据访问入口。
验证:验证是连接阶段的第一步,这一阶段的目的是确保Class对象的
字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机的自身安全>。主要有:1,文件格式验证。2,元数据验证。3,字节码验证。4,符号引用验证。
准备:准备阶段就是正式为类变量分配内存并设置类变量的初始值的>阶段,这些内存都将在方法区中进行分配。
解析:解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过>程。
初始化:初始化阶段是真正开始执行类中定义的java程序代码。