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); ????} }
輸出結(jié)果是1,0
為什么
2018-09-26
Java對于靜態(tài)成員變量的初始化,分解為兩步執(zhí)行。
1. 根據(jù)靜態(tài)成員變量在代碼中的先后次序進行聲明并賦值為缺省值2. 在靜態(tài)塊內(nèi)依次為變量進行賦值