靜塊何時何地會在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP