1. 类加载过程
- 类加载,查找class文件
- 分配静态存储空间,把所有静态内容(静态变量、静态方法、静态初始化块)加载到静态区中。
- JVM为成员变量初始化默认值,为静态变量开辟空间。
- 按顺序初始化静态变量、执行静态初始化块,即有关静态的初始化的所有动作的执行。
- 类加载完毕
2. 对象加载过程
- 使用new为对象分配内存空间
- 基本数据类型默认初始化(整型默认0,浮点型默认0.0,字符型默认ASCII值为0, 布尔型默认false,引用型默认null)
- 字段定义处的初始化 (如 int a = 1)
- 执行构造器
3. 继承与初始化
- 父类静态初始化块、静态变量(由代码顺序决定静态初始化块和静态变量的初始化循序)
- 子类静态初始化块、静态变量(由代码顺序决定静态初始化块和静态变量的初始化循序)
- 父类初始化块
- 父类构造方法
- 子类初始化块
- 子类构造方法