类的加载过程分为三步:
加载-->链接-->初始化,其中链接又包含 验证-->准备-->解析 三个步骤。
如下图所示:
加载:在加载阶段,主要是在内存中生成一个对应这个类的java.lang.Class对象,作为方法区的这个类的各种数据的入口。这里的后缀名为.class文件不一定是从本地获取的,可以是从网络获取的,还可以是动态生成的。
验证:主要是为了验证当前的文件是否符合Java虚拟机的要求,保证虚拟机的安全。
准备:为类变量分配内存地址,和设置默认的初始值(你懂的)。即在方法区中分配这些变量的所用的内存空间。
解析:将常量池中的符号引用替换为直接引用。
初始化:真正开始执行Java程序代码。