Java对象分析中,偏向锁、轻量级锁、重量级锁的升级改写过程是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1654个文字,预计阅读时间需要7分钟。
在HotSpot虚拟机中,对象的内存布局可划分为三部分:对象头(Header)、实例数据(Instance Data)和填充对齐(Padding)。对象头包括HotSpot虚拟机自身的运行时数据,如哈希码、GC分代年龄等。实例数据存储对象的具体字段数据。填充对齐是为了保证对象在内存中的对齐,可能包含一些无用的空间。
在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:
对象头(Header)
实例数据(Instance Data)
对齐填充(Padding)。
对象头
HotSpot虚拟机(后面没有说明的话默认是这个虚拟机)对象头包括三部分:
- Mark Word
- 指向类的指针
- 数组长度(只有数组对象才有)
对象头之Mark Word
Mark Word记录了对象和锁有关的信息,当这个对象被synchronized关键字当成同步锁时,围绕这个锁的一系列操作都和Mark Word有关。
Mark Word在32位JVM中的长度是32bit,在64位JVM中长度是64bit。
本文共计1654个文字,预计阅读时间需要7分钟。
在HotSpot虚拟机中,对象的内存布局可划分为三部分:对象头(Header)、实例数据(Instance Data)和填充对齐(Padding)。对象头包括HotSpot虚拟机自身的运行时数据,如哈希码、GC分代年龄等。实例数据存储对象的具体字段数据。填充对齐是为了保证对象在内存中的对齐,可能包含一些无用的空间。
在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:
对象头(Header)
实例数据(Instance Data)
对齐填充(Padding)。
对象头
HotSpot虚拟机(后面没有说明的话默认是这个虚拟机)对象头包括三部分:
- Mark Word
- 指向类的指针
- 数组长度(只有数组对象才有)
对象头之Mark Word
Mark Word记录了对象和锁有关的信息,当这个对象被synchronized关键字当成同步锁时,围绕这个锁的一系列操作都和Mark Word有关。
Mark Word在32位JVM中的长度是32bit,在64位JVM中长度是64bit。

