当前位置: 首页 > news >正文

制作一个链接网站怎么做网页二维码

制作一个链接网站,怎么做网页二维码,企管宝app下载,苏州建设工程质量监督网站一、Java对象的内存结构 每个Java对象在内存中由三部分组成(以64位JVM为例): |---------------------------------| | 对象头 (12-16字节) | → 包含Mark Word和类型指针 |---------------------------------| | 实例数…

一、Java对象的内存结构

每个Java对象在内存中由三部分组成(以64位JVM为例):

|---------------------------------|
|       对象头 (12-16字节)        |  → 包含Mark Word和类型指针
|---------------------------------|
|       实例数据 (不定长)          |  → 存储对象的字段值
|---------------------------------|
|       对齐填充 (0-7字节)         |  → 确保对象总大小为8的倍数
|---------------------------------|

二、Mark Word的核心作用

Mark Word是​​对象头的核心部分​​(固定8字节),用于存储对象的运行时状态,包括:

  • 🔐 ​​锁状态​​(无锁、偏向锁、轻量级锁、重量级锁)
  • 🆔 ​​哈希码​​(对象的唯一标识)
  • 🧓 ​​GC分代年龄​​(对象被垃圾回收的次数)
  • 🧵 ​​线程ID​​(持有偏向锁的线程)
  • ⏰ ​​时间戳​​(偏向锁的时效性验证)

📌 ​​关键设计​​:Mark Word像​​变色龙​​一样复用存储空间,根据对象状态动态调整内容。


三、Mark Word的结构变化(锁升级视角)

下图展示64位JVM下Mark Word在不同锁状态时的结构变化:

| 锁状态      | Mark Word结构 (64位)                          | 标志位 |
|-------------|-----------------------------------------------|--------|
| **无锁**    | 哈希码(31位) \| 分代年龄(4位) \| 0 \| **01**  | `01`   |
| **偏向锁**  | 线程ID(54位) \| Epoch(2位) \| 1 \| **01**     | `01`   |
| **轻量级锁**| 指向栈中锁记录的指针(62位) \| **00**          | `00`   |
| **重量级锁**| 指向重量级锁(Monitor)的指针(62位) \| **10**   | `10`   |
| **GC标记**  | (空) \| **11**                                | `11`   |

🔍 ​​锁升级过程​​(以线程竞争为例):
无锁 → 偏向锁(单线程反复访问)→ 轻量级锁(少量竞争,CAS自旋)→ 重量级锁(激烈竞争,线程阻塞)。


四、核心字段详解

  1. ​分代年龄 (4位)​

    • 记录对象被GC的次数(最大值15,因4位二进制最大值为1111=15
    • 达到阈值后对象从年轻代晋升到老年代。
  2. ​哈希码 (31位)​

    • 调用hashCode()后生成,延迟存储到Mark Word
    • 加锁后因空间不足,会迁移到Monitor中。
  3. ​线程ID (54位)​

    • 偏向锁状态下记录持有锁的线程ID
    • 同一线程再次加锁时直接通行(无同步开销)。

五、实战观察工具 - JOL

使用​​JOL库​​(Java Object Layout)直接打印对象内存布局:

// 添加Maven依赖
<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.17</version>
</dependency>// 打印Object对象布局
public static void main(String[] args) {Object obj = new Object();System.out.println(ClassLayout.parseInstance(obj).toPrintable());
}

输出示例(无锁状态):

java.lang.Object object internals:
OFFSET  SIZE   TYPE DESCRIPTION
0     4        (object header)  01 00 00 00  # Mark Word (01表示无锁)
4     4        (object header)  00 00 00 00  # 类型指针 (压缩后4字节)
8     4        (alignment padding)          # 对齐填充
Instance size: 16 bytes

🔑 ​​锁状态验证​​:
synchronized代码块内打印对象布局,可见标志位从01变为00(轻量级锁)。


六、为什么这样设计?

  1. ​空间极致利用​

    • 通过动态复用8字节空间,避免为每种状态分配独立空间。
  2. ​性能优化​

    • 偏向锁减少无竞争时的同步开销
    • 轻量级锁用CAS避免线程阻塞。
  3. ​扩展性​

    • 标志位决定结构,未来可扩展新状态(如JDK15的ZGC标记位11)。

七、总结:Mark Word的核心角色

功能实现机制
​身份证明​存储哈希码和GC年龄
​锁管理​通过标志位切换锁状态
​线程协同​记录持有锁的线程ID
​内存优化​动态复用存储空间

💎 ​​一句话理解​​:
Mark Word是Java对象的​​智能身份证​​,既存储身份信息(哈希码/年龄),又动态反映当前状态(锁类型),以最小空间支撑JVM的高效运行。

http://www.yayakq.cn/news/293363/

相关文章:

  • 网站搭建与生成技术教材仿煎蛋 wordpress
  • 湛江做网站苏州厂商微信上微网站怎么做的
  • 苏州网站建设专业的公司求个网站
  • 网站建设质量保证金定远县建设局网站
  • 樟木头镇网站建设公司惠州seo关键词推广
  • asp婚纱摄影网站公司建立网站青岛电话
  • 网站制作网站优化手机网址2021年免费不封
  • 中文字体怎么设计网站wordpress标签代码
  • 网站开发 前端vue 后端c简单的管理系统有哪些
  • 信用渭南网站建设专业做公司网站
  • 附近培训电脑的地方重庆seo整站优化效果
  • 蚌埠网站关键词优化一个虚拟主机能安装2个网站吗
  • 资源网站源码怎样做淘宝联盟网站
  • 电子 网站建设申请过程制作网站协议书
  • 设计一个网站重点是什么dw软件怎么下载
  • 山西城乡和住房建设厅网站首页网页制作素材末班
  • 濮阳网站优化公司哪家好wordpress linux 下载
  • 黄冈网站建设做外贸通常用哪些网站
  • 长沙网站建设长沙网站制作保定免费做网站
  • 网站seo方法wordpress中文 速度慢
  • wap网站开发价格proxy网页在线代理
  • 网站空间注册网站建设制作深圳
  • 呼和浩特网站运营公司域名备案备注怎么写
  • 做网站的高手龙邦建设股份有限公司网站
  • 国外网站 工信部备案公司网站建设工作计划
  • 建设项目网站seo如何做网站建设
  • 淘宝客建设网站需要哪些条件北京海淀区属于几环
  • 电商推广技巧黑帽seo培训多少钱
  • 网站没收录可以做推广吗wordpress 评论go跳转
  • 优化网站排名茂名厂商更适合企业网站建设的cms系统