一.类加载器深入解析与阶段分解
1.在Java代码中,类型(类)的加载、连接与初始化过程都是在程序运行期间完成的。
2.Java虚拟机结束生命周期的情况:
-
程序执行了System.exit()方法
-
程序正常执行结束
-
程序执行中遇到异常或错误而异常终止
-
操作系统出现错误导致Java虚拟机终止
3.累的加载、连接与初始化
-
加载:查找并加载类的二进制数据
-
链接
-
验证:确保被加载的类的正确性
-
准备:为类的静态变量分配内存,并将其初始化为默认值
-
解析:把类中的符号引用转换为直接引用
-
-
初始化:为类的静态变量赋予正确的初始值
-
值得注意的是:准备阶段即使我们为静态变量赋值为任意的数值,但是该静态变量还是会被初始化为他的默认值,最后的初始化时才会把我们赋予的值设为该静态变量的值。