Java之物件建構過程

來源:互聯網
上載者:User

標籤:java   對象初始化   建立對象   

Java中一個對象的構造過程如下:

1.用類載入器載入父類,按父類靜態變數定義的順序的為父類所有靜態變數分配空間,並賦予父類靜態變數預設值。

2.用類載入器載入自己,按自己靜態變數定義的順序的為自己所有靜態變數分配空間,並賦予自己靜態變數預設值。

3.按父類靜態變數定義的順序的為父類所有靜態變數賦上定義的值。
4.執行父類靜態代碼塊。

5.按自己靜態變數定義的順序的為自己所有靜態變數賦上定義的值。
6.執行自己靜態代碼塊。

7.為父類執行個體變數分配空間,並賦予預設值。
8.為自己執行個體變數分配空間,並賦予預設值。

9.按父類執行個體變數定義的順序的為父類所有執行個體變數賦上定義的值。
10.執行父類的構造代碼塊。
11.執行父類的構造方法。

12.按自己執行個體變數定義的順序的為自己所有執行個體變數賦上定義的值。

13.執行自己的構造代碼塊。
14.執行自己的構造方法。

15.物件建構完畢。

注意:

1.父類如果還有父類就也依照此順序先初始化父類的父類,直到Object為止。

2.如果執行步驟3、5、9、12時,定義的值引入了別的類,則會初始化那個類,如果引用的類還有引用的類則也按照此順序先初始化引用類的引用類,直到所有被引用的類全部被初始化完畢為止。

3.如果一個類沒有父類(如Object類),則它的初始化順序可以簡化成2、5、6、8、12、13、14、15。


轉載請標明原地址,請尊重原創,謝謝。

Java之物件建構過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.