java虛擬機new一個對象的建立過程

1.檢測類是否被加載,首先將去檢查這個指令的參數是否能在常量池中定位到一個類的符號引用,而且檢查這個符號引用表明的類是否已被加載、解析和初始化過。若是沒有,那必須先執行相應的類加載過程。指針

2.加載後,爲新對象分配內存,對象所須要的內存大小在類被加載以後就被肯定(堆中分配內存,碰撞指針,空閒列表)對象

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

4.對對象進行必要的設置(例如這個對象是哪一個類的實例、如何才能找到類的元數據信息、對象的哈希碼、對象的GC分代年齡等信息。這些信息存放在對象的對象頭之中。)it

5.執行《init》方法,按照程序的值初始化。引用

總結一下上面所說的,建立一個對象的過程就是:程序

檢測類是否被加載 沒有加載的先加載→爲新生對象分配內存→將分配到的內存空間都初始化爲零值→對對象進行必要的設置→執行<init>方法把對象進行初始化方法

相關文章
相關標籤/搜索