- 做一个简单讲解关于类加载器的问题:
- 首先讲解JVM的生存期问题:
程序正常运行结束,那么jvm就死了
System.exit()方法
程序遇错终结
操作系统出错导致jvm进程结束
3.类一开始被加载,然后被连接,然后初始化。
加载:查找并加载类的二进制数据。
连接:
验证: 确保被加载类的正确性。正常人使用javac生成class,有些坏人用特殊生成class,所以得验证字节码,不然程序运行是恶意程序就死定了。
准备:为类的静态变量分配内存,并将其初始化默认值。比如private static int a=7;准备阶段赋予默认值为0给a,然后初始化7改a。
解析:把类的符号引用转为直接引用
4.初始化:为类的静态变量赋予正确的初始值。