sponsored links

深入理解JVM-物件記憶體佈局

今天看了京東T10技術專家王新棟的直播,首先很感謝大佬的分享,分享的主要方向是服務邊界劃分,但是我聽到了除了技術以外的聲音,就是對程式碼負責,開發過程中允許有技術債務,但是技術債務一定要償還,如果不償還技術債務,就不是技術上的問題了,而是道德上的問題,同時也在跟隨王老師堅持學習,讓學習成為一種習慣,希望更多喜歡技術的人,讓程式設計除了作為生存的基本技能之外,更多的是作為生活的一部分,一種習慣,我們結伴而行

關於物件頭,我覺得還是單獨拿出來記錄,因為線上程安全的實現中,跟物件頭有直接關係,方便我們定位這塊知識

物件記憶體佈局

物件記憶體佈局,分為物件頭(MarkWord+型別指標)、例項資料、對其填充,對其填充只針對例項資料,物件頭在設計的時候就是8位元組對齊的,如果是陣列還有一個數組長度

MarkWord在32位作業系統佔4位元組(32bit),在64位作業系統未開啟指標壓縮的情況下佔8位元組(64bit),開啟指標壓縮的情況佔4位元組(32bit),MarkWord的作用就是記錄物件鎖狀態,配合GC、存放物件hash;Mark Word包含物件hash、分代年齡、鎖狀態標識,執行緒持有的鎖、偏向執行緒ID、偏向時間戳等,不同狀態下儲存內容也不同,目的是為了節省記憶體空間,下圖為hotspot的markOop物件頭描述

深入理解JVM-物件記憶體佈局

鎖狀態


32bit


25bit


4bit


1bit


2bit


23bit


2bit


偏向模式


標誌位


無鎖


物件hashCode


分代年齡


0


01


輕量級鎖


指向呼叫棧中鎖記錄的指標


00


重量級鎖(鎖膨脹)


指向重量級鎖的指標(重量級鎖的ObjecrMonitor類包含物件HashCode)


10


GC標記



11


可偏向模式(可設定)


執行緒ID


Epoch(偏向時間戳)


分代年齡


1


01

型別指標指向方法區的物件型別元資料,型別指標在32位作業系統佔4位元組(32bit),在64位作業系統未開啟指標壓縮的情況下佔8位元組(64bit),開啟指標壓縮的情況佔4位元組(32bit),jvm就是根據型別指標確定是哪個類的物件,棧中引用定位物件例項的方式有2種,一種是指標,一種是控制代碼池,指標的方式引用儲存的是物件的地址,控制代碼池的方式,引用儲存的是物件的控制代碼地址,控制代碼中儲存物件地址,控制代碼池的好處是物件被移動的時候,只需要改變控制代碼對物件的引用,如垃圾回收,物件記憶體位置變更的情況

陣列長度,如果不是陣列物件,佔0位元組,如果是陣列物件佔4個位元組,儲存的是陣列的長度,陣列長度使用的是int型別,最大個數位2的32次方-1

例項資料,儲存的是物件的屬性,包含基本資料型別和引用資料型別,引用資料型別未開啟指標壓縮的情況佔8位元組,開啟指標壓縮的情況佔4個位元組

ideal檢視物件頭,引入maven依賴

<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
<version>0.9</version>
</dependency>

列印物件頭

深入理解JVM-物件記憶體佈局


程式碼示例

深入理解JVM-物件記憶體佈局


物件頭

深入理解JVM-物件記憶體佈局


陣列物件示例

深入理解JVM-物件記憶體佈局


物件頭

1:Mark Word

2:型別指標

3:物件屬性

4:對其填充

5:陣列物件多一個數組長度

分類: 遊戲
時間: 2022-04-09

相關文章

90後小情侶開餐飲店負債20萬,靠玩“王者榮耀”3個月收回50萬

90後小情侶開餐飲店負債20萬,靠玩“王者榮耀”3個月收回50萬
輝哥寄語: 負債後如何快速翻身?這是每一個負債人最關心的問題! 對普通人來說,能夠支撐起這個目標的,只有創業.但是很多人在不同的行業創業之後,一直是收入平平,甚至還有的在一直虧損. 輝哥每天給大家分享 ...

王者榮耀艾琳女武神怎麼獲得 女武神艾琳獲得方法

王者榮耀艾琳女武神怎麼獲得 女武神艾琳獲得方法
王者榮耀的限定女英雄艾琳只有一款伴生面板,但是這款面板並不像別的英雄伴生皮一樣可以直接獲得.那麼怎麼獲取艾琳的女武神面板呢?除了王者水晶還有什麼辦法可以領取女武神?想要女武神的小夥伴,下面一起來看看女 ...

王者榮耀9.23更新:S25賽季開啟,18個英雄/裝備調整,120幀開放

王者榮耀9.23更新:S25賽季開啟,18個英雄/裝備調整,120幀開放
王者榮耀正式服將在9月23日凌晨開啟停機更新,本次更新的主要內容包括:1.S25賽季開啟:2.王者峽谷規則調整:3.18個英雄/裝備調整:4.弈星重塑上線:5.120幀率開放,等等.具體內容如下: 1 ...

小米多款機型增王者榮耀120Hz模式;友達推出85寸4K 240Hz電競面板

小米多款機型增王者榮耀120Hz模式;友達推出85寸4K 240Hz電競面板
[科技犬] 在即將到來的 S25 版本中,iQOO 8\Pro.vivo X70 Pro+.Redmi K40 Pro.小米 11 UItra.小米 11Pro.騰訊 ROG 遊戲手機 3.騰訊 RO ...

王者榮耀s25賽季段位繼承表分享 s25賽季段位繼承規則一覽

王者榮耀s25賽季段位繼承表分享 s25賽季段位繼承規則一覽
王者榮耀s25賽季即將結束,很多玩家不知道S25賽季繼承表,雖然目前還未給出s25賽季的段位繼承表,但是王者榮耀這幾個賽季的段位都沒有改動,那麼這個繼承規則是什麼呢,小編整理和收集了有關內容,下面就來 ...

王者榮耀:已確認23號更新賽季,楊玉環再出新面板,王者以下哭了

王者榮耀:已確認23號更新賽季,楊玉環再出新面板,王者以下哭了
hello~大家好,我是榮耀王者小仙女.對於王者榮耀S25賽季的更新經歷,可以說是過程非常的坎坷,由於LOL手遊的出現,而且定下日期為15公測,因此天美將S25賽季的更新日程提前了到了14號.可誰也想 ...

「遊戲篇」S25 賽季即將上線,多款機型新增《王者榮耀》120Hz

「遊戲篇」S25 賽季即將上線,多款機型新增《王者榮耀》120Hz
大家好,我是你們的好朋友Z馬小呆.如果喜歡我的文章,就留下一個大大的贊吧(づ ̄3 ̄)づ 王者榮耀官方微博宣佈,在 9 月 23 日,長安賽年將迎來收官之戰,同時開啟 S25 新賽季「落子無悔」.此次更 ...

王者榮耀:S25上線時間官宣!關於新賽季,這10點你需要注意

王者榮耀:S25上線時間官宣!關於新賽季,這10點你需要注意
王者榮耀S25賽季上線時間終於官宣,各位小夥伴們可以吃下這顆定心丸了.關於新賽季,我為小夥伴們整理了10點需要注意的地方,每一處可以說都是畫圈圈的重點,趕緊來隨我一同看看吧! 要點1:S25賽季打野英 ...

王者榮耀S25更新,三款新皮正式上線,已有三萬多人飛速衝上王者

王者榮耀S25更新,三款新皮正式上線,已有三萬多人飛速衝上王者
相信小夥伴們都知道,王者榮耀S25新賽季更新了,當然也有不少的新內容,趕緊來看看都有哪些吧! 首先就是大家期待已久的一些新面板.首先就是配色和關羽武聖高度相似的蘇烈賽季面板,和以往一樣只要積分達到10 ...

大決戰後,我軍戰力如何?裝備實現碾壓,4野1個軍可打國軍3個軍

大決戰後,我軍戰力如何?裝備實現碾壓,4野1個軍可打國軍3個軍
三大戰役結束後,我軍已經飲馬長江,開始進行渡江戰役準備,解放全中國也僅僅是時間問題.三大戰役對於國軍的打擊無疑是毀滅級的,在遼瀋.淮海.平津,我軍一共消滅了150萬的國軍精銳.而且在戰役結束後,我軍和 ...

《風雲》第三部口碑崩塌,戰力崩潰只是原因之一,人設崩塌才致命

《風雲》第三部口碑崩塌,戰力崩潰只是原因之一,人設崩塌才致命
看過<風雲>漫畫的小夥伴都知道,這部漫畫的前兩部當年連載的時候,不僅擁有極高的人氣,更是擁有良好的口碑,可以說是港漫的代表作品,然而隨著時間流逝,<風雲>連載到第三部後,人氣越 ...

火影:歷代五影戰力圖解,水影最沒面子,木葉村有點出人意料

火影:歷代五影戰力圖解,水影最沒面子,木葉村有點出人意料
在火影忍者的世界中,五影應該算是其中最為強大的存在了.他們不僅名聲在外,實力也是非常出眾的.從疾風傳再到博人傳,影的位置也傳承了好幾代,歷代影也是各有各的特點和故事.那麼如果綜合他們的實力,分成幾個檔 ...

王者榮耀:s25賽季提前更新,體驗服夏侯惇增強,廉頗免傷回撥

王者榮耀:s25賽季提前更新,體驗服夏侯惇增強,廉頗免傷回撥
Hello,大家好,這裡是兔八哥聊遊戲!關注我,為您帶來不一樣的遊戲理解! 王者榮耀s25賽季終於迎來了更新,不過這次新賽季的更新與之前有很大的不同,主要是這些新賽季的更新是屬於預約更新.簡單地說就是 ...

王者榮耀:710點券買兩塊史詩面板,后羿榮耀典藏預計3形態

王者榮耀:710點券買兩塊史詩面板,后羿榮耀典藏預計3形態
王者榮耀:710點券買兩塊史詩面板,后羿榮耀典藏預計3形態 Hello大家好,我是遊戲鮶,很高興見到大家.沈夢溪的中秋節主題面板,今日正式上架,作為一款史詩面板,以710點券首周開售. 而安琪拉的漫畫 ...

韓跑跑確定豬八戒新面板,西遊記聯動王者榮耀出新面板?

韓跑跑確定豬八戒新面板,西遊記聯動王者榮耀出新面板?
王者榮耀這款遊戲大家應該都是比較熟悉的,S25賽季即將到來,遊戲裡面也是要上架很多新面板的,對於新面板各位覺得戰令活動確實非常划算,新賽季的戰令面板已經確定,一級戰令是后羿的聖弓遊俠,戰令星元面板是亞 ...

中秋節王者榮耀能玩多久 王者榮耀節假日時間限制機制一覽

中秋節王者榮耀能玩多久 王者榮耀節假日時間限制機制一覽
今年防沉迷系統又發生了新的變革,因此2021中秋節裡,未成年人的遊戲時間也發生了新的限制變化,想知道中秋節王者榮耀能玩多久嗎?想就趕快看看下面由小編分享的遊戲攻略. 中秋節王者榮耀能玩多久 王者榮耀玩 ...

王者榮耀:玩魯班七號還在出破曉?出碎星錘傷害要高於破曉

王者榮耀:玩魯班七號還在出破曉?出碎星錘傷害要高於破曉
魯班七號是路人局非常熱門的射手英雄,隨著版本的更迭.遊戲前中期節奏大大加快,很多射手英雄都需要優化出裝儘快進入強勢期. 現版本在KPL職業賽場以及巔峰賽中高分段,大部分魯班七號玩家都已經將破曉換成了碎 ...

王者榮耀:當隊友出現了這些問題,一旦逆風就別掙扎了,都是徒勞

王者榮耀:當隊友出現了這些問題,一旦逆風就別掙扎了,都是徒勞
大家好我是指尖,王者榮耀是一款團隊遊戲,每個位置都很重要,的確有一些對局,一個位置可有可無也能被帶躺,但是幾乎所有的對局中,都是每個位置發揮出自身的價值才能共同獲得勝利,畢竟每個人都渴求一場勢均力敵的 ...

王者榮耀:碎片商店下次什麼時候上新,哪幾款史詩面板會被加入?

王者榮耀:碎片商店下次什麼時候上新,哪幾款史詩面板會被加入?
王者榮耀的面板碎片商店,是一些玩家獲得高階面板的渠道之一.更新頻率,大致上是兩週至兩個月不等.但最近大半年的更新,碎片商店一直沒有新面板加入.也就是所謂的,沒有上新. 而上一次上新,是在去年12月的第 ...

王者榮耀段位打上不去為什麼?如何快速提升實力?這篇文章讓明白

王者榮耀段位打上不去為什麼?如何快速提升實力?這篇文章讓明白
2015年11月26日王者榮耀上線開始,到現在已經過去了5年多的時間,王者榮耀依舊活躍的像一頭髮了情的小母豬.被俘獲芳心的人群更是從幼崽到暮年大爺,輪番圈粉一波.可令人震驚的是5年多的時光,十多個賽季 ...