static 语句的执行时机实在第一次加载类信息的时候(如调用类的静态方法,访问静态成员,或者调用构造函数), static 语句和 static 成员变量的初始化会先于其他语句执行,而且只会在加载类信息的时候执行一次,以后再访问该类或new新对象都不会执行
而非 static 语句或成员变量,其执行顺序在static语句执行之后,而在构造方法执行之前,总的来说他们的顺序如下
1. 父类的 static 语句和 static 成员变量
2. 子类的 static 语句和 static 成员变量
3. 父类的 非 static 语句块和 非 static 成员变量
4. 父类的构造方法
5. 子类的 非 static 语句块和 非 static 成员变量
6. 子类的构造方法 |