Java物件例項化過程

2021-08-18 04:36:04 字數 690 閱讀 9404

jvm會讀取指定路徑下的class檔案,並載入進記憶體,並會先載入其父類(如果有直接的父類的情況下)。

在堆記憶體中開闢空間,分配位址。

並在物件空間中,對物件中的屬性進行預設初始化。

呼叫對應的建構函式進行初始化。

在建構函式中,第一行會先呼叫父類中的建構函式進行初始化。

父類初始化完畢後,再對子類的屬性進行顯示初始化。

再進行子類建構函式的特定初始化。

初始化完畢後,將位址值賦值給引用變數。

public class demo 

}class parent

void show()

}class child extends parent

public child()

void show()

}

執行結果是

parent constructor run...7     //先呼叫父類的建構函式

child show run...0    //父類建構函式中執行show方法(被覆蓋,執行子類中的show),此時子類只進行了預設初始化,num=0.

constructor code....9     //父類初始化完畢後進行顯示初始化num=9;然後執行構造**塊,num=10

child constructor run...10    //子類建構函式..

物件例項化過程

1.首先分析一下記憶體空間 棧訪問速度比堆要快,僅次於直接位於cpu中的暫存器 2.物件例項化 1 首先,靜態 塊在載入時就執行了,所以肯定是最先執行的 2 對於非靜態 塊會在構造方法中的 塊之前載入 執行結果 static成員在載入位元組碼檔案到記憶體過程是會被優先執行,靜態成員變數會在方法區優先...

物件例項化過程分析

下面通過乙個簡單經典的demo演示下 class fu public void show class ziextends fu public void show public class test 執行結果 zi.run.0zi cons run1.8zi.run.8例項化步驟 1.jvm會讀取指定...

例項化物件的過程

在js中,物件的建立方式有許多種,new objec 字面量 建構函式等等,在es6中提供了採用class關鍵字來建立物件的方式,這些林林種種的寫法各有優劣,但是追根究底都是採用new object的方式來建立的。object是js的內建物件,也是所有物件的起源,那麼為什麼new乙個object得到...