Java 初始化顺序

public class ATest {

    static {
        System.out.println("this is A static");
    }

    {
        System.out.println("this is A {}");
    }

    public ATest() {
        System.out.println("this is A ATest");
    }

}


class BTest extends ATest{

    static {
        System.out.println("this is B static");
    }

    {
        System.out.println("this is B {}");
    }

    public BTest(){
        System.out.println("this is B BTest");
    }

    public static void main(String[] args) {
        ATest a = new BTest();
        ATest b = new BTest();
    }
}

Java 初始化顺序

1 、static 最先初始化(只初始化一次)

2、先父类,再子类

3、先 {} 后构造函数