亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Java對(duì)象創(chuàng)建的過(guò)程及內(nèi)存布局

 更新時(shí)間:2021年06月04日 17:24:19   作者:陽(yáng)光大男孩!  
今天給大家?guī)?lái)的文章是Java對(duì)象創(chuàng)建的過(guò)程及內(nèi)存布局,文中有非常詳細(xì)的圖文示例及介紹,需要的朋友可以參考下

一、對(duì)象的內(nèi)存布局

對(duì)象頭

對(duì)象頭主要保存對(duì)象自身的運(yùn)行時(shí)數(shù)據(jù)和用于指定該對(duì)象屬于哪個(gè)類的類型指針。

實(shí)例數(shù)據(jù)

保存對(duì)象的有效數(shù)據(jù),例如對(duì)象的字段信息,其中包括從父類繼承下來(lái)的。

對(duì)齊填充

對(duì)齊填充不是必須存在的,沒(méi)有特別的含義,只起到一個(gè)占位符的作用。

二、對(duì)象的創(chuàng)建過(guò)程

實(shí)例化一個(gè)類的對(duì)象的過(guò)程是一個(gè)典型的遞歸過(guò)程。

在準(zhǔn)備實(shí)例化一個(gè)類的對(duì)象前,首先準(zhǔn)備實(shí)例化該類的父類,如果該類的父類還有父類,那么準(zhǔn)備實(shí)例化該類的父類的父類,依次遞歸直到遞歸到Object類。

此時(shí),首先實(shí)例化Object類,再依次對(duì)以下各類進(jìn)行實(shí)例化,直到完成對(duì)目標(biāo)類的實(shí)例化。具體而言,在實(shí)例化每個(gè)類時(shí),都遵循如下順序:

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

2.執(zhí)行構(gòu)造函數(shù)初始化。也就是說(shuō),編譯器會(huì)將實(shí)例變量初始化和實(shí)例代碼塊初始化相關(guān)代碼放到類的構(gòu)造函數(shù)中去,并且這些代碼會(huì)被放在對(duì)超類構(gòu)造函數(shù)的調(diào)用語(yǔ)句之后,構(gòu)造函數(shù)本身的代碼之前。

三、對(duì)象訪問(wèn)定位

Java程序需要通過(guò)棧上的引用數(shù)據(jù)來(lái)操作堆上的具體對(duì)象。

對(duì)象的訪問(wèn)方式取決于虛擬機(jī)實(shí)現(xiàn),目前主流的訪問(wèn)方式有使用句柄和直接指針兩種。

句柄,可以理解為指向指針的指針,維護(hù)指向?qū)ο蟮闹羔樧兓?,而?duì)象的句柄本身不發(fā)生變化;指針,指向?qū)ο?,代表?duì)象的內(nèi)存地址。

句柄

Java堆中劃分出一塊內(nèi)存來(lái)作為句柄池,引用中存儲(chǔ)對(duì)象的句柄地址,而句柄中包含了對(duì)象實(shí)例數(shù)據(jù)與類型數(shù)據(jù)各自的具體地址信息。

對(duì)象類型數(shù)據(jù)是被虛擬機(jī)加載的類信息。

在這里插入圖片描述

直接指針

直接指針?lè)绞街校](méi)有劃分句柄池,引用中存儲(chǔ)的直接就是對(duì)象地址。

在這里插入圖片描述

四、參考

周志明,《深入理解Java虛擬機(jī)》

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

相關(guān)文章

  • 簡(jiǎn)單了解Spring中常用工具類

    簡(jiǎn)單了解Spring中常用工具類

    這篇文章主要介紹了簡(jiǎn)單了解Spring中常用工具類,非常全面,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111

    Caused by: java.io.IOException: DerInputStrea

    這篇文章主要介紹了Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • SpringBoot中多環(huán)境配置和@Profile注解示例詳解

    SpringBoot中多環(huán)境配置和@Profile注解示例詳解

    這篇文章主要介紹了SpringBoot中多環(huán)境配置和@Profile注解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Java 多線程之間共享數(shù)據(jù)

    Java 多線程之間共享數(shù)據(jù)

    這篇文章主要介紹了Java 多線程之間共享數(shù)據(jù),圍繞Java 多線程之間共享數(shù)據(jù)展開文章內(nèi)容線程范圍的共享變量、使用Map實(shí)現(xiàn)線程范圍內(nèi)數(shù)據(jù)的共享、ThreadLocal實(shí)現(xiàn)線程范圍內(nèi)數(shù)據(jù)的共享,需要的朋友可以參考一下
    2021-10-10
  • 解析spring加載bean流程的方法

    解析spring加載bean流程的方法

    這篇文章主要介紹了解析spring加載bean流程的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • IDEA如何進(jìn)行全局搜索圖文教程

    IDEA如何進(jìn)行全局搜索圖文教程

    idea全稱為IntelliJ?IDEA,在業(yè)界被公認(rèn)為最好用的Java開發(fā)工具之一,下面這篇文章主要給大家介紹了關(guān)于IDEA如何進(jìn)行全局搜索的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Springboot視頻接口報(bào)大量的ClientAbortException找不到原因的解決

    Springboot視頻接口報(bào)大量的ClientAbortException找不到原因的解決

    本文主要介紹了Springboot視頻接口報(bào)大量的ClientAbortException找不到原因的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 記錄一次connection reset 錯(cuò)誤的解決全過(guò)程

    記錄一次connection reset 錯(cuò)誤的解決全過(guò)程

    這篇文章主要介紹了記錄一次connection reset 錯(cuò)誤的解決全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 如何解決UnsupportedOperationException異常問(wèn)題

    如何解決UnsupportedOperationException異常問(wèn)題

    這篇文章主要介紹了如何解決UnsupportedOperationException異常問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java中性能優(yōu)化的35種方法匯總

    Java中性能優(yōu)化的35種方法匯總

    很多同學(xué)在日常寫Java的時(shí)候很少去關(guān)心性能問(wèn)題,但是在我們寫代碼的過(guò)程中必須考慮到性能對(duì)程序的影響。小到我們使用位運(yùn)算來(lái)實(shí)現(xiàn)算術(shù)運(yùn)算,大到我們對(duì) Java 代碼的總體架構(gòu)設(shè)計(jì),性能其實(shí)離我們很近。本文介紹了Java中性能優(yōu)化的35種方法,需要的朋友可以參考下。
    2017-01-01

最新評(píng)論