/**
* 执行顺序
* 1、多个静态成员变量, 静态代码块按顺序执行;
* 2、单个类中: 静态代码 -> main方法 -> 构造块 -> 构造方法
* 3、涉及父类和子类的初始化过程 a.初始化父类中的静态成员变量和静态代码块
b.初始化子类中的静态成员变量和静态代码块 c.初始化父类的普通成员变量和构造代码块(按次序),
再执行父类的构造方法(注意父类构造方法中的子类方法覆盖)
d.初始化子类的普通成员变量和构造代码块(按次序),再执行子类的构造方法
*/
public class ExcuteOrder {
//①静态成员
private static String a = "a";
//②静态方法
private static void staticMethod() {
System.out.println("static method");
}
//③静态代码块
static {
System.out.println("static block");
}
//④构造块
{
System.out.println("construct block");
}
//⑤构造方法
public ExcuteOrder() {
System.out.println("construct method");
}
//⑥main方法
public static void main(String[] args) {
System.out.println("main method");
}
}
网友评论