深入jvm
1:ClassLoad
Jvm将要结束生命周期
1:执行了system.exit()方法
2:程序正常执行结束
3:程序在执行过程中遇到了异常或者错误而异常终止
4:由于操作系统错误使得jvm挂掉。
加载:查找并加载类的二进制数据
连接:
验证:确保被加载的类的正确性
准备:为类的静态变量分配内存,并将其初始化为默认值。
解析:把类中的符号转换为直接饮引用。
初始化:为类的静态变量赋予正确的初始值。
Java程序对类的使用方式可分为两种。
主动使用(6种)
被动使用
2:类加载器
Java虚拟机自带的加载器
根类加载器
扩展类加载器
系统类加载器
用户自定义的类加载器
Java.lang.ClassLoader的子类
用户可以自定义类的加载方式。
类的加载
类的验证
类的准备
类的解析
3:类的初始化
先初始化默认值,在赋值。
package com.google;
//final
import java.util.Random;
class Test{
//public static final int i=6/3;
public static final int i=new Random().nextInt(100);
static{
System.out.println("PAGE");
}
}
public class jvm {
public static void main(String[] args) {
System.out.println(Test.i);
}
}
曹肖扬
19913146193