java对象头_什么是Java对象标头
小编典典
对象头由一个标记词和一个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对象标头相关推荐
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- java soap 头_如何将java头添加到java中的soaprequest
如果要将HTTP标头添加到SOAP请求或响应中,则无关紧要.您应该使用MessageContext的方式. 假设msgContext是您的Axis2请求/响应消息上下文对象(org.apache.ax ...
- java soap 头_如何在Java中添加Soap标头
我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头.如何在Java中添加soap标头? Authenticator.setDefault(new ProxyAuthen ...
- java对象头_我的并发编程(二):java对象头以及synchronized升级过程
一.概述 研究java对象头的目的是详细分析Java的synchronized锁的升级过程,因为synchronized在锁升级的时候,就是依赖对象头的信息来决定的.本博文针对64位的操作系统来对Ja ...
- java方法区对象类型_浅谈Java内存区域与对象创建过程
一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...
- java对象头markword_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- java 不能反序列化_不能将“Java.Lang.Studio”实例反序列化到StaskObl对象令牌中
我收到下面的错误消息,有人能帮助或建议如何最好地调试它吗? 无法反序列化的实例 java.lang.String 超出起始值的对象 [来源:(pushbackinputstream)处的令牌;行:1, ...
- JAVA类思维_面向对象思维 Java中的类和对象及其应用
一.面向过程与面向对象 面向过程: 从事务执行者的角度思考问题,我该干什么 重点在过程----事务流程 面向对象: 从事务的指挥者角度思考问题,我应该找谁干什么 重点在对象 面向对象的优点: 1. ...
- java 对象锁定_少锁定Java对象池
java 对象锁定 自从我写任何东西以来已经有一段时间了,我一直在忙于我的新工作,其中涉及在性能调优方面做一些有趣的工作. 挑战之一是减少应用程序关键部分的对象创建. 尽管Java随着时间的推移已改进 ...
最新文章
- Loadrunner日志设置与查看
- DDD:用 “四色原型” 进行 “聚合设计”
- UVA532 - Dungeon Master(裸BFS)
- Ruby on Rails:控制器纵览
- 浪潮服务器 虚拟光驱,使用IPMI功能远程安装Windows Server 2003操作系统步骤
- Java基础学习总结(34)——HTTP协议详解
- 技术专家(ai/大数据)_``我们淹没在数据中'':在专家和AI时代如何思考自己
- vscode保存代码,自动按照eslint规范格式化代码设置
- Pixy通过TTL转USB与电脑串口调试助手显示坐标
- 题解 luogu P6002 【[USACO20JAN]Berry Picking S】
- cpu虚拟化(cpu虚拟化开启有什么影响)
- Matlab绘制经纬度地图并添加坐标点
- 强烈推荐几款IDEA插件,12款小白神器
- 智慧树课程问答怎么得分
- 设计一个自我介绍简单页面
- 双稳态电路的两个稳定状态是什么_晶振电路中选择电容的方式有哪些?
- Yolanda,Withings,PICOOC以及RyFit四款智能人体成分秤对比评测
- 你要的能做出炫酷图表的网站来啦
- 8位并行左移串行转换电路_双向移位寄存器 8位双向移位寄存器电路设计
- 整站优化提升排名工具_百度快速排名教程【常见问题】
热门文章
- PAT乙级(1003 我要通过!)
- 直播预告丨统一便捷的数据操作平台CloudQuery年终发布!
- Redis这么快你知道吗?
- 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
- 云小课|细数那些VMware虚拟机的恢复招式
- 为啥你写的代码总是这么复杂?
- 华为云PB级数据库GaussDB(for Redis)揭秘第五期:高斯 Redis 在IM场景中的应用
- 转角遇上Volcano,看HPC如何应用在气象行业
- 【华为云技术分享】云图说丨初识标签管理服务:给你的云资源贴个条
- 【华为云技术分享】文字识别服务(OCR)基于对抗样本的模型可信安全威胁分析初析