Java对象是怎么在虚拟机中存储的?

Java对象在虚拟机中主要由对象头、对象实例和对齐填充三部分组成。

1.对象头中包含了对象的元信息和运行时数据。

对象头主要由Mark Word、类型指针和数组长度三部分组成。

其中,数组长度只有数组才有;

Mark Word主要用于存储运行时数据,会根据对象的状态动态变化;

类型指针指向对象对应的类的元数据,用于确定该对象的类型。

2.对象实例存储的是对象的实际数据,也就是类的字段。

3.为了满足内存一般情况下的8字节对齐要求,JVM可能会在对象的末尾添加填充字节。

至于存储位置,大多数的对象分配在中,堆也是JVM管理的内存中最大的一块区域。

相关推荐
传奇开心果编程8 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
SL_staff8 小时前
财务系统慎用低代码?从数据模型闭环看合规落地的技术实践
java·低代码·全栈
Bruce_Liuxiaowei8 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
滕州市燕猫虎计算机科技工作室个体工商户8 小时前
IDEA:Command line is too long
java·ide·intellij-idea
步行cgn8 小时前
Spring p 命名空间注入详解
java·前端·spring
YatHinLay8 小时前
MyBatis 流式查询实战:ResultHandler 处理海量数据
java
天天被压力9 小时前
【跨市场数据实战 #08】可转债折价机会怎么筛:3个接口抓比价、列表和实时盘口
java·人工智能·python
aramae9 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
张某布响丸辣9 小时前
附件下载的安全边界:路径白名单、NAS 哨兵文件与 Redis Lua 一次性令牌
java·redis·redis lua·nas哨兵
YatHinLay10 小时前
Spring Boot + Calcite 实现跨库查询
java