物件建立過程

2021-10-01 06:22:37 字數 479 閱讀 8964

過程一共有五步:

類載入檢查→分配記憶體→初始化零值→設定物件頭→執行init()

**①類載入檢查:**檢查該物件所代表的的類是否已經被載入、解析和初始化過,沒有的話先執行類的載入過程;

**②分配記憶體:**在通過第一之後虛擬機器為物件分配記憶體。物件經過類載入之後大小就基本確定了,分配空間就是在堆中劃出一塊大小確定的記憶體;

**③初始化零值:**記憶體分配完成後,虛擬機器需要對記憶體初始化為零值,這一步保證物件的例項可以在不賦初始值的情況下使用;

**④設定物件頭:**初始化零值之後,虛擬機器需要對物件進行必要設定,比如元資料,雜湊碼,gc年齡代等等;

**⑤執行init():**此時物件已經出現但是物件所有欄位都是零值,一般會自動執行init將把象按照程式設計師的意願進行初始化,這樣乙個真正可用的物件才算完全產生出來。

物件的建立過程

jvm查詢類的路徑,定位到.class檔案 載入.class檔案,有關靜態初始化的所有動作都會被執行 靜態初始化只在物件首次載入的時候進行一次 當用new建立物件的時候,在堆上為物件分配足夠的空間 儲存空間將會被初始化,自動為物件的所有基本資料型別設定成預設值,引用被置為null 執行所有出現於字段...

物件的建立過程

直接上 public class sup public sup static package com.test.resources public class sub extends sup public sub static public class test 父類靜態 塊 在父類的無參構造上面 父...

建立物件的過程(臨時物件)

class cgoods cgoods cgoods float price cgoods const cgoods rhs const 1.防止實參被修改 2.接收隱式生成的臨時量 下面對執行結果分析 cgoods good1 good1 1,1.1 呼叫帶三個引數的建構函式 堆區 cgoods ...