每当创建对象时,将在执行构造函数之前执行一个非静态块。
在非静态块是一流水平不具有任何原型块。
对于非静态块的需求是,无论何时创建对象,无论构造方法如何,都必须执行任何逻辑。
对于Java堆栈区域中的每个对象创建,JVM 都会自动调用 非静态块。
我们可以在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