You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中重写Hash Function相关图示的16'0与16'1指代含义问询

对象头结构示意图

标记含义说明

这是HotSpot虚拟机Java对象头(Mark Word)的状态标记,两个标记的具体含义如下:

  • 前缀的16指对象分代年龄的临界阈值:HotSpot中对象的分代年龄占用4个bit位,最大可存储的年龄值为15,16就是对象年龄达到晋升老年代的上限阈值
  • 后缀的0和1是默认哈希值计算状态的标识位:
    • 16'0:该对象还未调用过默认hashCode()方法或System.identityHashCode(),还没有生成基于对象地址的唯一identity哈希值
    • 16'1:该对象已经生成过基于对象地址的identity哈希值,对应数值已经写入对象头的预留存储位置

补充说明:一旦对象生成了基于地址的identity哈希值,就无法再进入偏向锁状态,这也是偏向锁模式下调用默认hashCode()会直接触发偏向锁撤销的核心原因。

内容的提问来源于stack exchange,提问作者mohamed hesen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:57:03