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

JVM中对象的存储

引言

在 Java 虚拟机中,对象的内存布局是一个非常基础且重要的概念。每个 Java 对象在内存中都由三个主要部分构成:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。其中,对象头又包含了 Mark Word(存储对象运行时数据)、类型指针(Klass Pointer)以及数组长度(仅针对数组对象)。这种精心设计的内存布局不仅支撑着 Java 的运行时特性(如锁机制、垃圾回收),还需要考虑不同硬件平台的内存对齐要求。

对象存储格式

对象头存储格式

_mark:Mark Word(运行时数据)
_klass:类指针
_length:数组长度

MarkWord存储格式

一个空Object占用内存大小?

开启压缩指针的情况下,占12个字节,因为对象大小必须是8字节的整数倍,所以需要对齐填充为16字节。(_mark:8字节、_klass:4字节,非数组_length为0字节)

未开启压缩指针的情况下,占16个字节。(_mark:8字节、_klass:8字节,非数组_length为0字节)


感谢您的阅读!如果文章中有任何问题或不足之处,欢迎及时指出,您的反馈将帮助我不断改进与完善。期待与您共同探讨技术,共同进步!

http://www.xdnf.cn/news/4391.html

相关文章:

  • AI能否取代软件架构师?我将4个大语言模型进行了测试
  • win11下pip安装matplotlib超时的问题解决
  • PAT(最近)
  • spring cloud gateway 断言(Predicates)与过滤器(filters)
  • 基于vue框架的电子竞技赛事管理系统12t47(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • JVM中类加载过程是什么?
  • FPGA 不兼容故障及处理
  • SRS流媒体服务器(3)视频通话环境搭建和源码分析
  • 使用 Vue CLI 和 vuedraggable 实现拖拽排序功能
  • 深度学习赋能:正面吊车载箱号识别系统的核心技术
  • 电子电器架构 --- 48V架构的一丢丢事情
  • 排序算法——计数排序
  • RabbitMQ高级特性
  • RabbitMQ-springboot开发-应用通信
  • 技术分享:Franka机器人新方案——双臂数据采集与适应性安装,带你探索具身智能的奥秘
  • 【温湿度物联网】记录1:寄存器配置
  • RTC实时时钟DS1337S/PT7C4337WEX国产替代FRTC1337S
  • 关于大疆红外图片提取温度方法 python 方法
  • C++ std::sort 函数
  • JC/T 2187-2013 铝波纹芯复合铝板检测
  • 【MySQL】C语言访问数据库
  • 第5讲、Transformer 编码器(Encoder)处理过程详解
  • 世界无人机大会将至,大势智慧以“AI+实景三维”赋能低空经济
  • 从创意到变现:独立创造者的破局之路——解码《Make:独立创造者手册》
  • PyCharm连接WSL2搭建的Python开发环境
  • Kepware 连接Modbus TCP/IP
  • 上海雏鸟科技再赴越南,助力10518架无人机刷新吉尼斯记录
  • MySQL优化-MySQL常见的锁机制
  • 报表的那些事:四部演进史——架构视角下的技术跃迁与实战思考
  • 高防ip是怎么做到分布式防御的