类的加载

1.加载

当程序引用到类时,会把class文件加载到内存中

2.链接,

为static变量赋默认的初始值

讲常量放入常量池

3.初始化

合并静态代码块与静态变量赋值语句

调用静态代码块里面的内容

注意:引用常量不会进行初始化步骤

public class Client {
    public static void main(String[] args) {
      System.out.println(A.m);
    }
<pre><code>static class A {
    static {
        m = 300;
        System.out.println("A 静态代码块调用");
    }

    static int m = 100;
}

}

> Task :Client.main() A 静�?�代码块调用 100

产生类的初始化

1.虚拟机启动页初始main所在的类

2.new一个类对象

3.调用静态变量,静态方法

4.初始化一个类,附带会初始化她的父类(如果父类没有初始化过)

被动引用: 不会初始化类

1.访问一个静态域,声明的域的类会被初始化

2.定义数组

3.引用常量