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

JVM—Java对象

JVM中的Java对象在堆内存中的存储分布可以分为对象头,实例数据和对齐填充三部分

对象头:

包含运行时元数据和类型指针

1、Mark Word(标记字段)

对象自身的运行时数据:
  • 锁状态标志(无锁、偏向锁、轻量级锁、重量级锁、GC标记)
  • 哈希码
  • 分代年龄(用于分代GC)
  • 线程ID(偏向锁持有者)
长度:
  • 32位JVM:4字节
  • 64位JVM:8字节,开启指针压缩(-XX:+UseCompressedOops)后可能优化为4字节
数组长度(仅数组对象有)

实例数据

存储对象的字段数据(包括从父类继承的字段)排列顺序受,​字段分配策略​ 影响:

  • 默认策略​:按 long/double → int/float → short/char → byte/boolean → 引用类型 降序排列。
  • 父类字段在前,子类字段在后
  • 相同宽度的字段会被分配在一起​(减少内存填充)。

对齐填充:

  • JVM要求对象大小必须是8字节的整数倍,如果对象头+实例数据总大小不满足会额外填充字节
  • 作用优化内存访问性能(CPU按块读取,对齐后减少缓存行未命中)
http://www.dtcms.com/a/209228.html

相关文章:

  • Vue3中reactive响应式使用注意事项
  • 港口危货储存单位主要安全管理人员考试题
  • Android正则表达式
  • 技术文档:SINAMICS S120 变频器搭配 GRJ9000S 系列 EMC 电源滤波器
  • 教育行业课件共享难题:大文件分发效率优化方案
  • 【Java高阶面经:消息队列篇】22、消息队列核心应用:高并发场景下的解耦、异步与削峰
  • 龙虎榜——20250523
  • 继续对《道德经》第57章至第81章进行数学形式化建模
  • 今日打卡,Leetcode第四题:寻找两个正序数组的中位数,博主表示就会sorted
  • 若依 Plus 自定义字典的使用
  • 如何设置名称服务器
  • 2025年5月软考系分论文预测
  • 【解决】GIT空文件夹不被追踪导致的分支污染
  • 大疆制图跑飞马D2000的正射与三维模型
  • PETR- Position Embedding Transformation for Multi-View 3D Object Detection
  • 从渗透测试角度分析 HTTP 数据包
  • 【前端】Bun:快速上手
  • WebStorm 高效快捷方式全解析
  • ⽂件上传⿊名单限制绕过方法
  • 如何在STM32CubeMX下为STM32工程配置调试打印功能
  • android设计——功能临时开启与永久管控
  • 穿屏技巧:Mac-Windows一套鼠标键盘控制多台设备 (sharemouse6.0-Keygen)| KM-401A
  • 相机坐标系、图像坐标系和世界坐标系
  • 豆瓣的 PyPI 源关闭后替代方案
  • 博弈论(巴什、nim、......SG打表)
  • 数据集YOLO格式转换COCO格式
  • 计算机图形学:(三)MVP变换扩展
  • 初识 Flask 框架
  • 详解MySQL锁机制
  • 七彩喜适老化改造:让每个空间成为长者尊严的守护者