静态代码块、构造代码块和构造函数执行顺序

时间:2023-02-11 18:22:38

一般情况下,静态代码块最先执行,且只执行一次

其次是构造代码块执行,最后执行构造方法,其中,构造代码块和构造方法每次new对象时都会执行

举例如下:

class Student {
	static {
		System.out.println("Student 静态代码块");  //3
	}
	
	{
		System.out.println("Student 构造代码块");  //4    6
	}
	
	public Student() {
		System.out.println("Student 构造方法");
	}  //5  7
}

class StudentDemo {
	static {
		System.out.println("林青霞都60了,我很伤心");  //1
	}
	
	public static void main(String[] args) {
		System.out.println("我是main方法");  //2
		
		Student s1 = new Student(); //
		Student s2 = new Student();
	}
}

执行结果如下:

林青霞都60了,我很伤心
我是main方法
Student 静态代码块
Student 构造代码块
Student 构造方法
Student 构造代码块
Student 构造方法