加载:将class文件字节码内容加载到内存中,并将这些静态数据转化成方法区的运行时的数据结构,然后生成一个java.lang.Class对象
链接:将JVM类的二进制代码合并到JVM的运行状态之中的过程
初始化:
package com.yuanyu.annandre; public class Test06 { public static void main(String[] args) { A a = new A(); System.out.println(a.m); /* 1. 加载到内存,会产生一个Class对象 2. 链接 ,链接结束后m=0 3. 初始化 <clinit>(){ System.out.println("A的静态代码块初始化"); m=300; } static int m=100; */ } } class A{ static { System.out.println("A的静态代码块初始化"); m=300; } static int m=100; public A() { System.out.println("A的无参构造初始化"); } }
程序运行结果:
A的静态代码块初始化
A的无参构造初始化
100