非静态代码块在Java中相对于构造器执行的顺序是什么?
每当创建一个对象时,都会在执行构造器之前执行非静态块。
非静态块
- 非静态块是类级别块,没有原型。
- 非静态块的需要是无论构造器如何,每当创建一个对象时都要执行任何逻辑。
- 非静态块由JVM在java堆栈区域中自动调用,以用于创建每个对象。
- 我们可以在 Java 中创建任意数量的非静态块 i。
- 非静态块的执行顺序是按定义的顺序。
示例
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
广告