靜塊何時何地會在 Java 中執行?


靜態塊是一段帶有 static 關鍵字的程式碼塊。通常,這些程式碼塊用於初始化靜態成員。JVM 會在類載入時在 main 方法之前執行靜態塊。

示例

 演示

public class MyClass {
   static{
      System.out.println("Hello this is a static block");
   }
   public static void main(String args[]){
      System.out.println("This is main method");
   }
}

輸出

Hello this is a static block
This is main method

執行靜態塊

JVM 首先會查詢 main 方法(至少是最新版本),然後開始執行包含靜態塊在內的程式。因此,如果沒有 main 方法,你無法執行靜態塊。

示例

 演示

public class Sample {
   static {
      System.out.println("Hello how are you");
   }
}

由於上述程式沒有 main 方法,如果你編譯並執行它,將收到一條錯誤訊息。

C:\Sample>javac StaticBlockExample.java
C:\Sample>java StaticBlockExample
Error: Main method not found in class StaticBlockExample, please define the main
method as: public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

如果你想執行靜態塊,則需要有 Main 方法,並且該類的靜態塊會在 main 方法之前執行。

示例

 演示

public class StaticBlockExample {
   static {
      System.out.println("This is static block");
   }
   public static void main(String args[]){
      System.out.println("This is main method");
   }
}

輸出

This is static block
This is main method

更新於: 30-Jul-2019

2000+ 瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始使用
廣告