1. 程式人生 > >《物件建立過程中 例項化的順序》摘自《Thinking in JAVA》

《物件建立過程中 例項化的順序》摘自《Thinking in JAVA》

最近一直在看《Thinking In JAVA》,裡面一些知識點自己平日裡還真沒有注意過:


譬如這部分:在例項化物件的過程,物件的各部分的初始化順序:


總結一下物件的建立過程,假如有個名為Dog的類:


1.即使沒有顯示的使用Static關鍵字,構造器實際上也是靜態方法,因此首次建立Dog物件時,或者Dog類的靜態方法、靜態域首次被訪問時,Java直譯器必須查詢類路徑,以定位

Dog.class檔案


2.然後載入Dog.class檔案,有關靜態初始化的所有動作都會執行。因此,靜態初始化只會在Class物件首次載入時進行一次。


3.當用New Dog()建立物件的時候,首先為Dog在堆上分配足夠的儲存空間。


4.這塊儲存空間會被清零,這就將Dog物件中的所有基本資料型別都設成了預設值,而引用則設成了Null。


5.執行所有出現與欄位定義處的初始化動作。


6,執行構造器,這可能會牽涉到很多動作,尤其是在涉及繼承的時候。