1
標題可能不容易理解,但基本上我已經看到了這一點在一些程序中,我很好奇它,清除事情我簡化了代碼,以在某種程度上我們可以專注於我的問題。混淆與關鍵字靜態與括號在一個類
public class A {
public A() {
System.out.println("constructor");
}
static{
System.out.println("static");
}
}
-
public class B {
public static void main(String[] args) {
A a = new A();
}
}
當我運行代碼的輸出是:
靜態
構造
究竟是什麼這個靜態W¯¯第i個括號?從外觀看來,它似乎是在使用類時運行括號內的代碼,但爲什麼存在如果我們有構造函數?我們不能把我們需要在構造函數裏面初始化的代碼放進去嗎?並且它似乎在構造函數之前運行它的代碼,因爲static這個詞在構造函數之前出現,爲什麼這樣呢?
它被稱爲靜態初始化程序,它在您運行應用程序時運行。你甚至不需要它的一個實例。它與創建ENUM實例的範圍相同(在此之後運行)。 – EpicPandaForce