天天看点

关于静态语句块、非静态语句块,成员变量初始化、构造方法在父子类执行的顺序:

1、父类的静态语句块、

2、子类的静态语句块、

3、父类的成员变量初始化、

4、父类的非静态语句块、

5、父类的构造方法

6、子类的成员变量初始化

7、子类的非静态语句块

8、子类的构造方法

1、如果一个类的成员变量在声明时就进行初始化处理, 则先执行成员变量的初始化,然后调用构造方法创建实例

2、如果一个类中有静态语句块,则在加载到jvm时(不一定创建实例),先执行静态语句块,(并且只执行一次),再执行成员变量的初始化,最后调用构造方法创建实例

3、如果一个类中有非静态语句块,则非静态语句块在类的成员变量初始化之后,构造方法执行之前进行执行。(并且每次使用new创建实例对象时都会执行一次)