Java對象建立的過程

Java對象建立的過程

Java中對象的建立就是在堆上分配內存空間的過程,此處說的對象建立僅限於new關鍵字建立的普通Java對象,不包括數組對象的建立程序員

對象的建立大概分爲如下幾步:數組

1:檢查類是否已經被加載;spa

2:爲對象分配內存空間;code

3:爲分配的內存空間初始化零值爲對象字段設置零值對象

4:對對象進行其餘設置設置對象頭進程

5:執行構造方法。內存

1.檢查類是否被加載

當虛擬機執行到new 關鍵字時,首先會去運行時常量池中查找該引用所指向的類有沒有被虛擬機加載,若是沒有被加載,那麼會進行類的加載過程,若是已經被加載,那麼進行下一步,爲對象分配內存空間虛擬機

2.爲對象分配內存

類加載完成之後,虛擬機就開始爲對象分配內存,此時所需內存的大小就已經肯定了。只須要在堆上分配所須要的內存便可。hash

3.爲分配的內存空間初始化零值

對象的內存分配完成後,還須要將對象的內存空間都初始化爲零值,這樣能保證對象即便沒有賦初值,也能夠直接使用。分配完內存後,須要對對象的字段進行零值初始化,對象頭除外,零值初始化意思就是對對象的字段賦0值,或者null值,這也就解釋了爲何這些字段在不須要進程初始化時候就能直接使用引用

4.對對象進行其餘設置

分配完內存空間,初始化零值以後,虛擬機還須要對對象進行其餘必要的設置,設置的地方都在對象頭中,包括這個對象所屬的類,類的元數據信息,對象的hashcode,GC分代年齡等信息

5.執行構造方法

執行對象的構造方法,這裏作的操做纔是程序員真正想作的操做,例如初始化其餘對象啊等等操做,至此,對象建立成功。

相關文章
相關標籤/搜索