小编典典

对象头由一个标记词和一个klass指针组成。

所述标记字具有(字大小4 byte在32位体系结构中,8 byte在64位体系结构)和

在克拉斯指针对字大小32 bit的架构。在64 bit体系结构上,klass指针要么具有字长,但是4 byte如果可以在这些堆中编码堆地址,也可以具有字长4 bytes。

此优化称为“压缩的oops”,你也可以使用option进行控制UseCompressedOops。

你还可以找到关于此的Wiki条目1。

该标志词实际上是使用了很多东西。

一是Biased Locking 2,HotSpot可以通过它实现有效的锁定。

它还在GC to set forward pointers和中使用to store the age of the objects。对象的身份哈希码可以存储在标记(“ System.identityHashCode/” Object.hashCode)内。

markOop.hpp的源代码中有一条注释,该注释根据架构描述了布局:

// 32 bits:

// --------

// hash:25 ------------>| age:4 biased_lock:1 lock:2 (normal object)

// JavaThread*:23 epoch:2 age:4 biased_lock:1 lock:2 (biased object)

// size:32 ------------------------------------------>| (CMS free block)

// PromotedObject*:29 ---------->| promo_bits:3 ----->| (CMS promoted object)

//

// 64 bits:

// --------

// unused:25 hash:31 -->| unused:1 age:4 biased_lock:1 lock:2 (normal object)

// JavaThread*:54 epoch:2 unused:1 age:4 biased_lock:1 lock:2 (biased object)

// PromotedObject*:61 --------------------->| promo_bits:3 ----->| (CMS promoted object)

// size:64 ----------------------------------------------------->| (CMS free block)

//

// unused:25 hash:31 -->| cms_free:1 age:4 biased_lock:1 lock:2 (COOPs && normal object)

// JavaThread*:54 epoch:2 cms_free:1 age:4 biased_lock:1 lock:2 (COOPs && biased object)

// narrowOop:32 unused:24 cms_free:1 unused:4 promo_bits:3 ----->| (COOPs && CMS promoted object)

// unused:21 size:35 -->| cms_free:1 unused:7 ------------------>| (COOPs && CMS free block)

2020-03-19

java对象头_什么是Java对象标头相关推荐

  1. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  2. java soap 头_如何将java头添加到java中的soaprequest

    如果要将HTTP标头添加到SOAP请求或响应中,则无关紧要.您应该使用MessageContext的方式. 假设msgContext是您的Axis2请求/响应消息上下文对象(org.apache.ax ...

  3. java soap 头_如何在Java中添加Soap标头

    我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...

  4. java对象头_我的并发编程(二):java对象头以及synchronized升级过程

    一.概述 研究java对象头的目的是详细分析Java的synchronized锁的升级过程,因为synchronized在锁升级的时候,就是依赖对象头的信息来决定的.本博文针对64位的操作系统来对Ja ...

  5. java方法区对象类型_浅谈Java内存区域与对象创建过程

    一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...

  6. java对象头markword_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  7. java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中

    我收到下面的错误消息,有人能帮助或建议如何最好地调试它吗? 无法反序列化的实例 java.lang.String 超出起始值的对象 [来源:(pushbackinputstream)处的令牌;行:1, ...

  8. JAVA类思维_面向对象思维 Java中的类和对象及其应用

    一.面向过程与面向对象 面向过程: 从事务执行者的角度思考问题,我该干什么  重点在过程----事务流程 面向对象: 从事务的指挥者角度思考问题,我应该找谁干什么  重点在对象 面向对象的优点: 1. ...

  9. java 对象锁定_少锁定Java对象池

    java 对象锁定 自从我写任何东西以来已经有一段时间了,我一直在忙于我的新工作,其中涉及在性能调优方面做一些有趣的工作. 挑战之一是减少应用程序关键部分的对象创建. 尽管Java随着时间的推移已改进 ...

最新文章

  1. Loadrunner日志设置与查看
  2. DDD:用 “四色原型” 进行 “聚合设计”
  3. UVA532 - Dungeon Master(裸BFS)
  4. Ruby on Rails:控制器纵览
  5. 浪潮服务器 虚拟光驱,使用IPMI功能远程安装Windows Server 2003操作系统步骤
  6. Java基础学习总结(34)——HTTP协议详解
  7. 技术专家(ai/大数据)_``我们淹没在数据中'':在专家和AI时代如何思考自己
  8. vscode保存代码,自动按照eslint规范格式化代码设置
  9. Pixy通过TTL转USB与电脑串口调试助手显示坐标
  10. 题解 luogu P6002 【[USACO20JAN]Berry Picking S】
  11. cpu虚拟化(cpu虚拟化开启有什么影响)
  12. Matlab绘制经纬度地图并添加坐标点
  13. 强烈推荐几款IDEA插件,12款小白神器
  14. 智慧树课程问答怎么得分
  15. 设计一个自我介绍简单页面
  16. 双稳态电路的两个稳定状态是什么_晶振电路中选择电容的方式有哪些?
  17. Yolanda,Withings,PICOOC以及RyFit四款智能人体成分秤对比评测
  18. 你要的能做出炫酷图表的网站来啦
  19. 8位并行左移串行转换电路_双向移位寄存器 8位双向移位寄存器电路设计
  20. 整站优化提升排名工具_百度快速排名教程【常见问题】

热门文章

  1. PAT乙级(1003 我要通过!)
  2. 直播预告丨统一便捷的数据操作平台CloudQuery年终发布!
  3. Redis这么快你知道吗?
  4. 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
  5. 云小课|细数那些VMware虚拟机的恢复招式
  6. 为啥你写的代码总是这么复杂?
  7. 华为云PB级数据库GaussDB(for Redis)揭秘第五期:高斯 Redis 在IM场景中的应用
  8. 转角遇上Volcano,看HPC如何应用在气象行业
  9. 【华为云技术分享】云图说丨初识标签管理服务:给你的云资源贴个条
  10. 【华为云技术分享】文字识别服务(OCR)基于对抗样本的模型可信安全威胁分析初析