概述

一個(gè)對(duì)象本身的內(nèi)在結(jié)構(gòu)需要一種描述方式,這個(gè)描述信息是以字節(jié)碼的方法存儲(chǔ)在方法區(qū)中的。
Class 本身就是一個(gè)對(duì)象,都以 KB 為單位,如果 new Integer() 為了表示一個(gè)數(shù)據(jù)就占用KB級(jí)別的內(nèi)存就有點(diǎn)不值了,下面講解 JVM 是如何做的。
為了表示對(duì)象的屬性、方法等信息,不得不需要結(jié)構(gòu)描述。Hotspot VM 使用對(duì)象頭部的一個(gè)指針指向 Class 區(qū)域的方式來找到對(duì)象的 Class 描述,以及內(nèi)部的方法、屬性入口。如下圖所示:

萬碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

在 HotSpot 虛擬機(jī)中,對(duì)象在內(nèi)存中存儲(chǔ)布局分為 2 塊區(qū)域:對(duì)象頭(Header)、實(shí)例數(shù)據(jù)(Instance Data)、對(duì)齊填充(Padding),下面詳細(xì)講解各部分內(nèi)容。

對(duì)象頭(Header)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式