jvm 什么是对象头,里面有什么
生活随笔
收集整理的這篇文章主要介紹了
jvm 什么是对象头,里面有什么
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在 HotSpot 虛擬機中,一個對象的存儲結構分為3塊區域:對象頭(Header)、實例數據(Instance Data) 和 對齊填充(Padding);
**對象頭(Header):**包含兩部分,第一部分用于存儲對象自身的運行時數據,如哈希碼、GC分代年齡、鎖狀態標志、線程持有的鎖、偏向線程 ID、偏向時間戳等,32 位虛擬機占 32 bit,64 位虛擬機占 64 bit,官方稱為 ‘Mark Word’;
第二部分是類型指針,即對象指向它的類的元數據指針,虛擬機通過這個指針確定這個對象是哪個類的實例,另外,如果是Java數組,對象頭中還必須有一塊用于記錄數組長度的數據,因為普通對象可以通過 Java 對象元數據確定大小,而數組對象不可以;
**實例數據(Instance Data):**程序代碼中所定義的各種成員變量類型的字段內容(包含父類繼承下來的和子類中定義的);
**對齊填充(Padding):**不是必然需要,主要是占位,保證對象大小是某個字節的整數倍,HotSpot虛擬機,任何對象的大小都是8字節的整數倍;
https://blog.csdn.net/weixin_39982236/article/details/110724755
總結
以上是生活随笔為你收集整理的jvm 什么是对象头,里面有什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm双亲委派机制
- 下一篇: redis的持久化方式有哪些?