类生命周期:
在Java程序运行之前JVM会把编译完成的.class二进制文件加载到内存,后续提供程序使用,用到的就是类加载器ClassLoader 。加载阶段与连接阶段的部分内容(如一部分字节码文件格式验证动作)是交叉进行的,加载阶段尚未结束,连接阶段就可能开始了。但是夹在加载阶段进行的动作,仍然属于连接阶段的内容。
文件格式验证,元数据验证,字节码验证,符号引用验证
正式为类变量分配内存并设置类变量初始值,放在元空间,静态变量值都是默认值
将常量池内的符号引用替换为直接引用
真正执行类中定义的字节码,也就是.class文件。 执行类构造器方法,以及真正初始化类变量和其他资源
|