栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是Java对象标头

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是Java对象标头

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

所述标记字具有(字大小

4 byte
在32位体系结构中,
8 byte
在64位体系结构)和

在克拉斯指针对字大小

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

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

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

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

  1. 一是
    Biased Locking 2,HotSpot
    可以通过它实现有效的锁定。
  2. 它还在
    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)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号