Java 中非静态块相对于构造函数的执行顺序是什么?
javaobject oriented programmingprogramming更新于 2025/4/8 21:00:17
每当创建一个对象时,非静态块将在执行构造函数之前执行。
非静态块
- 非静态块是类级别的块,没有任何原型。
- 需要非静态块是为了在创建对象时执行任何逻辑,而不管构造函数是什么。
- JVM会自动调用非静态块,每次在java 堆栈区域中创建对象时都会调用它。
- 我们可以创建任意数量的Java 中的非静态块。
- 非静态块的执行顺序是定义的顺序。
示例
public class NonStaticBlockTest {
{
System.out.println("First Non-Static Block"); // first non-static block
}
{
System.out.println("Second Non-Static Block"); // second non-static block
}
{
System.out.println("Third Non-Static Block"); // third non-static block
}
NonStaticBlockTest() {
System.out.println("Execution of a Constructor"); // Constructor
}
public static void main(String args[]) {
NonStaticBlockTest nsbt1 = new NonStaticBlockTest();
NonStaticBlockTest nsbt2 = new NonStaticBlockTest();
}
}
输出
First Non-Static Block Second Non-Static Block Third Non-Static Block Execution of a Constructor First Non-Static Block Second Non-Static Block Third Non-Static Block Execution of a Constructor
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

