java类加载过程

Java运行机制

java运行过程

类加载过程

字节码被装载到jvm内存区域的过程

1
2
3
4
5
6
7
8
9
类装载过程
|_ 阶段1.加载 (class二进制文件读进内存里即ClassLoader实现)
|_ 阶段2.连接 (将静态的类信息转换为jvm方法区的运行期数据)
|_ 2.1验证 (文件格式、元数据、字节码、符号引用 验证)
|_ 2.2准备 (为类变量分配内存并设置类变量初始值的阶段,如int i=100,初始化为0,不包含对象)
|_ 2.3解析 (将常量池内的符号引用替换为直接引用)
|_ 阶段3.初始化 (执行类构造器<clinit>方法、静态代码块)
|_ 使用
|_ 卸载
  1. 初始化什么东西?

    1
    2
    3
    4
    对类变量进行初始化,
    即在Java类中对类变量指定初始值有两种方式:
    1.声明类变量时指定初始值
    2.使用静态初始化块为类变量指定初始值
  2. 初始化一个类的3步骤

    1
    2
    3
    1.假如这个类还没有被加载和连接,程序先加载并连接该类;
    2.假如该类的直接父类还没有被初始化,则先初始化其直接父类;
    3.假如类中有初始化语句,则系统依次执行这些初始化语句