可能对于有些新手来说,当创建一个类的对象时,我们通常认为构造方法一定是先执行的。
但是遇见代码块时,执行顺序就要变化了。
执行顺序:
静态代码块>>>>普通代码块>>>>构造方法, 静态代码块优先执行。
并且当我们在一个类中去多次创建另一个类的对象时,另一个类中普通代码块和构造方法会被执行多次,而静态代码块只能被执行一次。
public class Test2 {
public Test2() {
System.out.println("构造方法执行了");
}
{
System.out.println("普通代码块执行了");
}
static {
System.out.println("静态代码块执行了");
}
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
Test2 te = new Test2();
}
}
}
运行结果为:
静态代码块执行了
普通代码块执行了
构造方法执行了
普通代码块执行了
构造方法执行了
普通代码块执行了
构造方法执行了