亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

為什么

正在回答

1 回答

Java對于靜態成員變量的初始化,分解為兩步執行。

1. 根據靜態成員變量在代碼中的先后次序進行聲明并賦值為缺省值2. 在靜態塊內依次為變量進行賦值


1 回復 有任何疑惑可以回復我~
#1

孤僻成癮 提問者

這個代碼里并沒有靜態塊, private static Singleton singleton = new Singleton();也是不理解,jvm把靜態變量加載到內存后,new后起作用嗎?
2018-09-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

java變量初始化

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號