class R1{
static{System.out.println("1");}
public static void main(String[]args){
System.out.println(2);
new Child();
}
}
class Parent{
static{System.out.println(3);
}
{System.out.println(5);
}
public Parent() {System.out.println(6);
}
}
class Child extends Parent{
static{System.out.println(4);
}{System.out.println(7);}
public Child() {System.out.println(8);
}
}
输出结果为1 2 3 4 5 6 7 8
1.执行main所在类的静态代码块
2.执行main函数代码块
3.执行父类静态代码块
4.执行子类静态代码块
5.执行父类非静态代码块
6.执行父类构造方法
7.执行子类非静态代码块
8.执行子类构造方法