java静态代码块、构造代码块、构造方法执行顺序

时间:2025-03-23 07:50:38

顺序:静态代码块 → main → 构造代码块 → 构造方法

public class Test05 {
	static{
		("父类静态代码块开始执行!");
	}
	{
		("父类构造代码块开始执行!");
	}
	public Test05(){
		("父类构造方法开始执行!");
	}
	public static void main(String[] args) {
		("父类开始运行main");
		new Test05();
	}
}

运行结果:

    父类静态代码块开始执行!
    父类开始运行main
    父类构造代码块开始执行!
    父类构造方法开始执行!


当存在继承的情况下:

执行顺序:父类静态代码块 → 子类静态代码块 → main →  父类构造代码块 → 父类构造方法 → 子类构造代码块 → 子类构造方法

public class Test06 extends Test05{
	static{
		("子类静态代码块开始执行!");
	}
	{
		("子类构造代码块开始执行!");
	}
	public Test06(){
		("子类构造方法开始执行!");
	}
	public static void main(String[] args) {
		("子类开始运行main");
		new Test06();
	}
}

运行结果:

    父类静态代码块开始执行!
    子类静态代码块开始执行!
    子类开始运行main
    父类构造代码块开始执行!
    父类构造方法开始执行!
    子类构造代码块开始执行!
    子类构造方法开始执行!