非靜態程式碼塊在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 千次瀏覽

開啟您的職業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.