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

移动 网站模板网页设计用什么软件做

移动 网站模板,网页设计用什么软件做,政府网站建设的问题,太原网站建设培训一、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.hkea.cn/news/86403/

相关文章:

  • 河南焦作有做网站开发的公司吗巩义网络推广公司
  • 邓州做网站网络广告有哪些形式
  • 爬闪数媒 网站建设网站建站流程
  • 网站建设广州白云百度统计app下载
  • 惠州短视频seoseowhy论坛
  • 肇庆网站快速排名优化温州seo排名公司
  • 北京疫情死亡人数最新消息王通seo赚钱培训
  • 北京做网站的外包公司营销策划方案案例范文
  • 专业做酒店网站关键词优化排名软件流量词
  • 做网站推广代理上海网络推广服务
  • wordpress可以做大吗搜索引擎优化的英语简称
  • 民治专业做网站公司中国企业500强排行榜
  • 潍坊 公司 网站seo点击排名器
  • 网站可以做赌博广告建站宝盒
  • 运城市做网站英文seo外链
  • 江宁网站建设如何建立网上销售平台
  • 淄博企业网站建设有限公司搜索引擎关键词竞价排名
  • 网站的优点企业专业搜索引擎优化
  • 哪里有软件开发培训机构无锡seo培训
  • 网站怎么做反链seo是什么品牌
  • 技术型网站做哪一种好软文范例大全100
  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用
  • wordpress 回收站在哪个文件夹营销方式和手段
  • 垂直型电商网站如何做快速排名软件哪个好
  • 做产品推广有网站比较好的免费自助建站平台
  • 番禺网站建设公司排名百度推广页面投放
  • 沈阳做微网站百度收录刷排名