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

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

加不加static怎么輸出結果都一樣阿?區別在哪

static{

age=17;

}

{

age=17;

}


正在回答

3 回答

我想你應該不會把這個兩個寫到一個類下面。所以你的問題是,這兩種寫法有什么區別?

static 修飾的代碼塊在類加載的時候就被分配到內存中了(注意類加載不是new操作,這時候還沒有對象,簡單地說就是你把這個類放到內存中去,之后產生出來的對象(比如new一個對象出來)都是共用的這部分內存區的數據)。所以只會調用一次。與對象沒有關系!

而非static修飾的代碼塊在你產生每個對象的時候都會調用一次。

說的比較淺,如果你感興趣,建議看看JVM相關知識。

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

qq_大魔王_23 提問者

非常感謝!
2018-08-19 回復 有任何疑惑可以回復我~

mark

0 回復 有任何疑惑可以回復我~

類加載時代碼塊執行順序不一樣,順序是靜態代碼塊,普通代碼塊,構造方法代碼塊。你這輸出結果一樣,你賦值的是同一個屬性age,后來運行的普通代碼塊把你靜態代碼塊賦值給覆蓋了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

加不加static怎么輸出結果都一樣阿?區別在哪

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

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

幫助反饋 APP下載

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

公眾號

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