對(duì)象的創(chuàng)建過(guò)程《Think in java》讀書(shū)筆記
假設(shè)有一個(gè)Dog類(lèi)
1、當(dāng)首次創(chuàng)建Dog的對(duì)象時(shí)(構(gòu)造器可以看成靜態(tài)方法),或者Dog類(lèi)的靜態(tài)方法/靜態(tài)域首次被訪問(wèn)時(shí),java解釋器必須查找類(lèi)路徑,以定位Dog.class文件
2、然后載入Dog.class,有關(guān)靜態(tài)初始化的所有動(dòng)作都會(huì)執(zhí)行。因此,靜態(tài)初始化的所有動(dòng)作都會(huì)執(zhí)行。因此,靜態(tài)初始化只在Class對(duì)象首次加載的時(shí)候進(jìn)行一次。
3、當(dāng)用new Dog()創(chuàng)建對(duì)象的時(shí)候,首先將在堆上為Dog類(lèi)分配足夠的存儲(chǔ)空間。
4、這塊存儲(chǔ)空間會(huì)被清零,這就看上去地將Dog對(duì)象中所有基本類(lèi)型數(shù)據(jù)都設(shè)置成了默認(rèn)值,而引用則被設(shè)置成了null。
5、執(zhí)行所有出現(xiàn)于字段定義處的初始化動(dòng)作。
6、執(zhí)行構(gòu)造器。
1、當(dāng)首次創(chuàng)建Dog的對(duì)象時(shí)(構(gòu)造器可以看成靜態(tài)方法),或者Dog類(lèi)的靜態(tài)方法/靜態(tài)域首次被訪問(wèn)時(shí),java解釋器必須查找類(lèi)路徑,以定位Dog.class文件
2、然后載入Dog.class,有關(guān)靜態(tài)初始化的所有動(dòng)作都會(huì)執(zhí)行。因此,靜態(tài)初始化的所有動(dòng)作都會(huì)執(zhí)行。因此,靜態(tài)初始化只在Class對(duì)象首次加載的時(shí)候進(jìn)行一次。
3、當(dāng)用new Dog()創(chuàng)建對(duì)象的時(shí)候,首先將在堆上為Dog類(lèi)分配足夠的存儲(chǔ)空間。
4、這塊存儲(chǔ)空間會(huì)被清零,這就看上去地將Dog對(duì)象中所有基本類(lèi)型數(shù)據(jù)都設(shè)置成了默認(rèn)值,而引用則被設(shè)置成了null。
5、執(zhí)行所有出現(xiàn)于字段定義處的初始化動(dòng)作。
6、執(zhí)行構(gòu)造器。
posted on 2011-02-23 16:17 jack zhai 閱讀(129) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): java2 se