静态代码块、构造代码块、构造方法的执行顺序是什么

原创
ithorizon 8个月前 (08-31) 阅读数 130 #Java

静态代码块、构造代码块、构造方法的执行顺序解析

在Java中,当我们创建一个对象时,静态代码块、构造代码块和构造方法的执行顺序是一个经常性被讨论的话题。下面我们将详细分析这三者的执行顺序。

1. 静态代码块

静态代码块是使用static关键字定义的代码块,它在类加载时执行,并且只会执行一次。通常用来初始化类的静态成员变量。

public class Test {

static {

System.out.println("静态代码块执行");

}

}

2. 构造代码块

构造代码块是在类中定义的普通代码块,它会在每次创建对象时执行。构造代码块用于初始化对象的成员变量,优先级高于构造方法。

public class Test {

{

System.out.println("构造代码块执行");

}

}

3. 构造方法

构造方法是类中用于创建对象的方法,与类名相同且没有返回值。构造方法在对象创建时执行,用于初始化对象的属性和方法。

public class Test {

public Test() {

System.out.println("构造方法执行");

}

}

执行顺序

现在我们来看一下这三者的执行顺序。下面是一个示例代码:

public class Test {

static {

System.out.println("静态代码块执行");

}

{

System.out.println("构造代码块执行");

}

public Test() {

System.out.println("构造方法执行");

}

public static void main(String[] args) {

Test t1 = new Test();

Test t2 = new Test();

}

}

输出导致:

静态代码块执行

构造代码块执行

构造方法执行

构造代码块执行

构造方法执行

从输出导致可以看出,静态代码块在类加载时执行,并且只会执行一次;构造代码块在每次创建对象时执行,优先级高于构造方法。所以,它们的执行顺序为:静态代码块 -> 构造代码块 -> 构造方法。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Java


热门