加载-》连接(验证-》准备-》解析)-》初始化
1)加载:通过类的全名获取类的二进制流,将类的数据结构转化为方法区的结构,在内存中生成一个代表这个类的class对象
2)连接:
- 验证:确保class信息正确无害
- 准备:在方法区初始化变量的初始值,对象为null
static int a =1 (初始化为0)
static final int a = 10 (初始化为10) - 解析:将类的符号引用转为直接引用
3) 初始化:执行方法的过程
准备阶段初始化为默认值
初始化阶段按顺序执行
a. 父类静态变量
b. 父类静态语句块
c. 子类静态变量
d. 子类静态语句块
e. 父类变量
f. 父类语句块
g. 父类构造函数
h. 子类变量
i. 子类语句块
j. 子类构造函数