加载(Loading)
JVM在该阶段的主要目的是将字节码从不同的数据源
(可能是class文件、也可能是jar包,甚至网络)转
化为二进制字节流加载到内存中,并生成一个代表该类
的java.lang.Class对象
连接(Linking)
1、目的是为了确保Class文件的字节流中包含的信息符合
当前虚拟机的要求,并且不会危害虚拟机自身的安全。
2、包括:文件格式的验证、元数据验证、字节码验证和
符号引用验证。
3、可以考虑使用-Xverify:none参数来关闭大部分的类验证措施,
缩短虚拟机加载的时间。
初始化(initialization)
1、JVM会在该阶段对静态变量,分配内存并默认初始化。
这些变量所使用的内存都将在方法区中进行分配。