關(guān)于實(shí)例化過程中先后順序問題
背景:實(shí)例化過程中(這里先不包含父類),我的理解先后順序?yàn)椋?/p>
靜態(tài)代碼塊
初始化為默認(rèn)值(int:0,boolean:false,引用類型:null)
顯示聲明
初始化塊
構(gòu)造函數(shù)中this調(diào)用的其他構(gòu)造函數(shù)
主構(gòu)造函數(shù)
代碼:
public?class?ConstructorTest?{ ????public?static?void?main(String[]?args){ ????????Demo?d?=?new?Demo();?//無參構(gòu)造函數(shù) ????} } class?Demo{ ????private?String?name?=?"";?//instance?field?initialization??顯示域初始化 ???? ????public?Demo(){ ????} }
問題:
根據(jù)先后順序,name先顯式初始化為"",然后再調(diào)用構(gòu)造函數(shù),查過相關(guān)資料空的構(gòu)造函數(shù)的定義是:“設(shè)置為默認(rèn)值”,我的理解是默認(rèn)值是null。但是這里name最后的輸出是"",所以問題是:空的構(gòu)造函數(shù)的默認(rèn)值是什么?
PS:
真是無聊的問題,但還是望解答。
2017-08-27
你把它設(shè)置為靜態(tài)函數(shù),系統(tǒng)不會(huì)自動(dòng)幫你設(shè)置為默認(rèn)值