非静态代码块在Java中相对于构造器执行的顺序是什么?


每当创建一个对象时,都会在执行构造器之前执行非静态块

非静态块

  • 非静态块类级别块,没有原型。
  • 非静态块的需要是无论构造器如何,每当创建一个对象时都要执行任何逻辑。
  • 非静态块JVMjava堆栈区域中自动调用,以用于创建每个对象。
  • 我们可以在 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

更新于:29-Jun-2020

3 千次浏览

开启您的职业

完成课程即可获得认证

开始
广告