最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java對象創(chuàng)建的過程及內存布局

 更新時間:2021年06月04日 17:24:19   作者:陽光大男孩!  
今天給大家?guī)淼奈恼率荍ava對象創(chuàng)建的過程及內存布局,文中有非常詳細的圖文示例及介紹,需要的朋友可以參考下

一、對象的內存布局

對象頭

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

實例數據

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

對齊填充

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

二、對象的創(chuàng)建過程

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

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

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

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

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

三、對象訪問定位

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

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

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

句柄

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

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

在這里插入圖片描述

直接指針

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

在這里插入圖片描述

四、參考

周志明,《深入理解Java虛擬機》

到此這篇關于詳解Java對象創(chuàng)建的過程及內存布局的文章就介紹到這了,更多相關Java對象創(chuàng)建及內存布局內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決springboot讀取application.properties中文亂碼問題

    解決springboot讀取application.properties中文亂碼問題

    初用properties,讀取java properties文件的時候如果value是中文,會出現亂碼的問題,所以本文小編將給大家介紹如何解決springboot讀取application.properties中文亂碼問題,需要的朋友可以參考下
    2023-11-11
  • springboot?html調用js無效400問題及解決

    springboot?html調用js無效400問題及解決

    這篇文章主要介紹了springboot?html調用js無效400的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Springboot根據配置文件動態(tài)注入接口實現類詳解

    Springboot根據配置文件動態(tài)注入接口實現類詳解

    這篇文章主要介紹了Springboot根據配置文件動態(tài)注入接口實現類詳解,具有很好的參考價值,希望對大家有所幫助,需要的朋友可以參考下,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解SpringBoot中如何使用Reactor模型

    詳解SpringBoot中如何使用Reactor模型

    Reactor模型主要提供了一種在Java虛擬機上構建非阻塞應用的方式,這種方式使用了響應式編程原理,通過響應式流標準來實現,下面我們就來看看它在SpringBoot中是如何使用的吧
    2024-04-04
  • java實戰(zhàn)之猜字小游戲

    java實戰(zhàn)之猜字小游戲

    這篇文章主要介紹了java實戰(zhàn)之猜字小游戲,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很好的幫助呦,需要的朋友可以參考下
    2021-04-04
  • Spring Data Jpa的四種查詢方式詳解

    Spring Data Jpa的四種查詢方式詳解

    這篇文章主要介紹了Spring Data Jpa的四種查詢方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • java中實現excel合并單元格詳細代碼實例

    java中實現excel合并單元格詳細代碼實例

    最近的工作中,遇到一個需求在生成的Excel表格后需要在尾部添加一個合并的單元格數據,這篇文章主要給大家介紹了關于java中實現excel合并單元格的相關資料,需要的朋友可以參考下
    2024-06-06
  • Java?Collections.sort()實現List排序的默認方法和自定義方法

    Java?Collections.sort()實現List排序的默認方法和自定義方法

    這篇文章主要介紹了Java?Collections.sort()實現List排序的默認方法和自定義方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • mybatis?plus樂觀鎖及實現詳解

    mybatis?plus樂觀鎖及實現詳解

    這篇文章主要為大家介紹了mybatis?plus樂觀鎖及實現詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • java如何用遞歸方法求階乘

    java如何用遞歸方法求階乘

    這篇文章主要介紹了java 用遞歸方法求階乘的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

教育| 郸城县| 阿拉善右旗| 繁昌县| 英山县| 前郭尔| 会宁县| 清水县| 临城县| 通道| 微山县| 同心县| 安西县| 封开县| 仲巴县| 三河市| 垦利县| 安泽县| 来宾市| 云梦县| 龙井市| 德兴市| 沙河市| 开原市| 新宁县| 钦州市| 金乡县| 大渡口区| 德令哈市| 页游| 麻城市| 辽阳市| 嘉定区| 天等县| 体育| 凤阳县| 七台河市| 古丈县| 麻栗坡县| 马龙县| 苗栗市|