以下为个人总结默写,经检查无误
对象的创建过程
类加载
1.加载父类,为静态变量赋值
2.加载子类,为子类静态变量分配内存
3.执行父类静态变量的赋值运算,和静态初始化块
4.执行子类静态变量的赋值运算,和静态初始化块
新建实例
5.新建父类实例 为父类的实例变量分配内存
6.新建子类实例,为子类的实例变量分配内存
7.执行父类的实例变量赋值运算
8.执行父类的构造方法
9.执行子类的实例变量赋值运算
10.执行子类的构造方法
小程序练习验证:
public class Test {
public static void main(String[] args) {
new B();
System.out.println("-----------");
new B();
}
}
class A {//作为父类
int v1 = 1;
static int v2 = 2;//父类静态变量
static {//父类静态初始化块
System.out.println(“A静态块”);
}
A() {//父类构造方法
System.out.println(“A构造”);
}
}
class B extends A {//作为A的子类
int v3 = 3;
static int v4 = 4;
static {
System.out.println(“B静态块”);
}
B() {
System.out.println(“B构造”);
}
}
//静态属于类,只在类被第一次加载时才会执行