Static 塊僅在該類被加載時執行一次
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x); System.out.println("a = " + a); System.out.println("b = " + b);
}
static {
System.out.println("Static block initialized.");
b = a * 4;
}
public static void main(String args[]){
meth(42);
}
}
一旦UseStatic 類被裝載,所有的static語句被運行。首先,a被設置為3,接着static 塊執行(打印一條消息),最后,b被初始化為a*4 或12。然后調用main(),main() 調用meth() ,把值42傳遞給x。3個println ( ) 語句引用兩個static變量a和b,以及局部變量x 。 注意:在一個static 方法中引用任何實例變量都是非法的。 下面是該程序的輸出:
Static block initialized.
x = 42
a = 3
b = 12
