靜態初始化器,又叫靜態初始化塊,是 Java 類的顯式的靜態初始化。Java 允許將多個靜態初始化動作組織成一個特殊的“靜態子句”(有時也叫“靜態塊”)。其語法描述就是由 static 修飾的一對花括號 "{}" 括起來的語句組。與其他靜態初始化動作一樣,這段代碼僅執行一次:當首次生成這個類的一個對象時,或者首次訪問屬於那個類的靜態數據成員時(即便從未生成過那個類的對象)。
例如:
//: initialization/ExplicitStatic.java
// Explicit static initialization with the "static" clause.
import static net.mindview.util.Print.*;
class Cup {
Cup(int marker) {
print("Cup(" + marker + ")");
}
void f(int marker) {
print("f(" + marker + ")");
}
}
class Cups {
static Cup cup1;
static Cup cup2;
static {
cup1 = new Cup(1);
cup2 = new Cup(2);
}
Cups() {
print("Cups()");
}
}
public class ExplicitStatic {
public static void main(String[] args) {
print("Inside main()");
Cups.cup1.f(99); // (1)
}
// static Cups cups1 = new Cups(); // (2)
// static Cups cups2 = new Cups(); // (2)
} /* Output:
Inside main()
Cup(1)
Cup(2)
f(99)
*///:~
