中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中對象的創建的過程有哪些

發布時間:2021-06-04 18:08:28 來源:億速云 閱讀:135 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關Java中對象的創建的過程有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一、對象的內存布局

對象頭

對象頭主要保存對象自身的運行時數據和用于指定該對象屬于哪個類的類型指針

實例數據

保存對象的有效數據,例如對象的字段信息,其中包括從父類繼承下來的。

對齊填充

對齊填充不是必須存在的,沒有特別的含義,只起到一個占位符的作用。

二、對象的創建過程

實例化一個類的對象的過程是一個典型的遞歸過程。

在準備實例化一個類的對象前,首先準備實例化該類的父類,如果該類的父類還有父類,那么準備實例化該類的父類的父類,依次遞歸直到遞歸到Object類。

此時,首先實例化Object類,再依次對以下各類進行實例化,直到完成對目標類的實例化。具體而言,在實例化每個類時,都遵循如下順序:

1.先依次執行實例變量初始化和實例代碼塊初始化

2.執行構造函數初始化。也就是說,編譯器會將實例變量初始化和實例代碼塊初始化相關代碼放到類的構造函數中去,并且這些代碼會被放在對超類構造函數的調用語句之后,構造函數本身的代碼之前。

三、對象訪問定位

Java程序需要通過棧上的引用數據來操作堆上的具體對象。

對象的訪問方式取決于虛擬機實現,目前主流的訪問方式有使用句柄和直接指針兩種。

句柄,可以理解為指向指針的指針,維護指向對象的指針變化,而對象的句柄本身不發生變化;指針,指向對象,代表對象的內存地址。

句柄

Java堆中劃分出一塊內存來作為句柄池,引用中存儲對象的句柄地址,而句柄中包含了對象實例數據與類型數據各自的具體地址信息。

對象類型數據是被虛擬機加載的類信息。

Java中對象的創建的過程有哪些

直接指針

直接指針方式中,并沒有劃分句柄池,引用中存儲的直接就是對象地址。

Java中對象的創建的過程有哪些

關于Java中對象的創建的過程有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金秀| 会同县| 贵德县| 张家港市| 饶平县| 石渠县| 樟树市| 吴川市| 新沂市| 洛南县| 沁阳市| 孟连| 黄梅县| 淳化县| 永安市| 平果县| 宝坻区| 大连市| 原阳县| 上犹县| 新野县| 孝昌县| 建德市| 集安市| 印江| 巍山| 蒲江县| 新龙县| 淅川县| 库伦旗| 清涧县| 巨野县| 航空| 龙州县| 昌黎县| 丹凤县| 南阳市| 广河县| 长乐市| 若羌县| 依兰县|