JVM类加载过程
所有的类都由类加载器加载,加载的作用就是将 .class文件加载到内存。
类的一个完整生命周期分为:
加载–>链接–>初始化–>使用–>卸载
而连接又可以分为:验证–>准备–>解析
加载:通过此类的全类名,查找此类的字节码文件,利用字节码文件创建Class文件。
验证:确保Class文件符合虚拟机要求,不会危害到虚拟机自身安全。
准备:进行内存分配,为static修饰的类变量分配内存,并设置初始值0或null,不包含final修饰的静态变量,因为final修饰的变量在编译时分配。
解析:将常量池中的符号引用替换为直接引用的过程。
初始化:主要完成静态块的执行及静态变量的赋值,先初始化父类再初始化当前类,只有对类主动使用的时候才会初始化。