class HelloA {
public HelloA() {
System.out.print("A");
}
{
System.out.print("B");
}
static {
System.out.print("C");
}
}
public class HelloB extends HelloA {
public HelloB() {
System.out.print("D");
}
{
System.out.print("E");
}
static {
System.out.print("F");
}
public static void main(String[] args) {
System.out.print("G");
new HelloB();
new HelloB();
System.out.print("H");
}
}
CFGBAEDBAEDH
CF 类加载时先加载 static代码块 父类->子类
G Main方法
BAED 实例化时加载 代码块->构造函数 父类->子类
BAED 实例化时加载 代码块->构造函数 父类->子类
H 顺序执行Main方法