并发编程之Java 对象头的详细解析

简介: 并发编程之Java 对象头的详细解析

Java 对象头

以 32 位虚拟机为例

普通对象

1. |--------------------------------------------------------------|
2. |                    Object Header (64 bits)                   |
3. |------------------------------------|-------------------------|
4. |       Mark Word (32 bits)          |   Klass Word (32 bits)  |
5. |------------------------------------|-------------------------|

数组对象

1. |---------------------------------------------------------------------------------|
2. |                             Object Header (96 bits)                             |
3. |--------------------------------|-----------------------|------------------------|
4. |        Mark Word(32bits)       |   Klass Word(32bits)  |  array length(32bits)  |
5. |--------------------------------|-----------------------|------------------------|

其中 Mark Word 结构为

1. |-------------------------------------------------------|--------------------|
2. |                  Mark Word (32 bits)                  |        State       |
3. |-------------------------------------------------------|--------------------|
4. |    hashcode:25  | age:4 |   biased_lock:0   |   01    |       Normal       |
5. |-------------------------------------------------------|--------------------|
6. |thread:23|epoch:2| age:4 |   biased_lock:1   |   01    |       Biased       |
7. |-------------------------------------------------------|--------------------|
8. |          ptr_to_lock_record:30              |   00    | Lightweight Locked |
9. |-------------------------------------------------------|--------------------|
10. |          ptr_to_heavyweight_monitor:30      |   10    | Heavyweight Locked |
11. |-------------------------------------------------------|--------------------|
12. |                                             |   11    |    Marked for GC   |
13. |-------------------------------------------------------|--------------------|

64 位虚拟机 Mark Word

1. |--------------------------------------------------------------------|--------------------|
2. |                          Mark Word (64 bits)                       |        State       |
3. |--------------------------------------------------------------------|--------------------|
4. | unused:25 | hashcode:31 | unused:1 | age:4 | biased_lock:0 |  01   |        Normal      |
5. |--------------------------------------------------------------------|--------------------|
6. | thread:54 |   epoch:2   | unused:1 | age:4 | biased_lock:1 |  01   |        Biased      |
7. |--------------------------------------------------------------------|--------------------|
8. |                    ptr_to_lock_record:62                   |  00   | Lightweight Locked |
9. |--------------------------------------------------------------------|--------------------|
10. |                 ptr_to_heavyweight_monitor:62              |  10   | Heavyweight Locked |
11. |--------------------------------------------------------------------|--------------------|
12. |                                                            |  11   |    Marked for GC   |
13. |--------------------------------------------------------------------|--------------------|


相关文章
|
Web App开发 安全 Java
SpringBoot开发案例之集成SSL证书
SSL简介 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。
13664 0
|
存储 编解码 数据挖掘
VOD(Video on Demand)
VOD(Video on Demand)是指视频点播,是一种通过互联网或其他数字传输网络,在用户需求下,按照用户选择的节目或者内容,随时、任意、快速地进行点播的服务。通俗地说,就是用户可以随时随地通过网络观看自己选择的视频内容,而不需要等待节目的播出时间。
1066 1
|
网络架构 架构师 网络协议
《IP组播(第1卷)》一导读
本书包含了基本IP组播原理和路由技术,尤其是Cisco路由器和交换机使用的组播技术,其中切合实际地讨论了 IP 组播网络的常见特性、部署模型和实战经验,之后讨论了 Cisco IP组播网络在实施和排错时使用的命令和方法。
2194 0
|
JSON Java 编译器
告别BeanUtils,Mapstruct从入门到精通
如果你现在还在使用BeanUtils,看了本文,也会像我一样,从此改用Mapstruct。
1282 0
告别BeanUtils,Mapstruct从入门到精通
|
编解码
SATA系列专题之二: 2.2 Link layer链路层加扰/解扰/CRC解析
资料在进行8b/10b 编码之前,必须先行资料加扰(Scramble)的处理,目的是為了降低EMI(Electromagnetic Interference,电磁干扰)。
|
弹性计算 固态存储 数据可视化
阿里云服务器报价费用一年价格表(2022更新)
2022阿里云服务器租用费用及优惠活动价格表CPU内存带宽系统盘价格详单
3044 0
阿里云服务器报价费用一年价格表(2022更新)
|
存储 机器学习/深度学习 XML
Hadoop中NameNode和SecondaryNameNode、NN和2NN工作机制、Fsimage和Edits解析、oiv查看Fsimage、oev查看Edits、CheckPoint时间设置
查看oiv和oev命令、sz命令,从虚拟机上下载到windows上、通常情况下,SecondaryNameNode每隔一小时执行一次、一分钟检查一次操作次数,当操作次数达到1百万时,SecondaryNameNode执行一次、第一阶段:NameNode启动、第二阶段:Secondary NameNode工作、hdfs oiv -p 文件类型 -i镜像文件 -o 转换后文件输出路径、可以看出,Fsimage中没有记录块所对应DataNode,为什么?在集群启动后,要求DataNode上报数据块信息,并间隔一段
507 0
Hadoop中NameNode和SecondaryNameNode、NN和2NN工作机制、Fsimage和Edits解析、oiv查看Fsimage、oev查看Edits、CheckPoint时间设置
|
存储 JSON 自然语言处理
基于Vue2.x的前端架构,我们是这么做的
基于Vue2.x的前端架构,我们是这么做的
420 0
基于Vue2.x的前端架构,我们是这么做的
|
存储 缓存 关系型数据库
前沿干货 | X-Engine:RDS MySQL的新存储引擎
作者:曲山,阿里云资深技术专家
3597 1
前沿干货 | X-Engine:RDS MySQL的新存储引擎
|
弹性计算 应用服务中间件 Linux
阿里云服务器[新手入门]如何使用
1.购买 登录官网查看云服务器购买列表,购买时选择地区、操作系统镜像等,购买云服务器后会发送短信通知,这里只列出一个: 【阿里云】尊敬的用户:您的云服务器ECS创建成功(实例名称:xxxxxxxxxx,公网IP:xxx.xxx.xxx.xxx)。
27814 1