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