java變量初始化
class?Singleton?{???? ????private?static?Singleton?singleton?=?new?Singleton();???? ????public?static?int?counter1;???? ????public?static?int?counter2?=?0;???? ????private?Singleton()?{ ????????counter1++; ????????counter2++; ????}???? ????public?static?Singleton?getInstance()?{??????? ?????????return?singleton; ????} } public?class?TestSingleton?{ ????public?static?void?main(String[]?args)?{ ????????Singleton?s?=?Singleton.getInstance(); ????????System.out.println(Singleton.counter1); ????????System.out.println(Singleton.counter2); ????} }
輸出結果是1,0
為什么
2018-09-26
Java對于靜態成員變量的初始化,分解為兩步執行。
1. 根據靜態成員變量在代碼中的先后次序進行聲明并賦值為缺省值2. 在靜態塊內依次為變量進行賦值