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

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

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

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

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

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

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

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

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

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

相关推荐
学海无涯书山有路10 小时前
Android ViewBinding 新手详解(Java 版)—— 结合 ViewModel+LiveData 实战
android·java·开发语言
jaysee-sjc10 小时前
【练习十】Java 面向对象实战:智能家居控制系统
java·开发语言·算法·智能家居
哪里不会点哪里.10 小时前
Spring Boot 启动原理深度解析
java·spring boot·后端
零基础的修炼10 小时前
算法---常见位运算总结
java·开发语言·前端
蜂蜜黄油呀土豆10 小时前
Java虚拟机内存模型解析与内存管理问题
java·jvm·内存管理·内存泄漏·内存溢出
wgslucky10 小时前
sm2 js加密,java服务器端解密
java·开发语言·javascript
Hx_Ma1610 小时前
SpringBoot配置文件占位符
java·spring boot·后端
我是大咖10 小时前
C 语言笔记: const 指针 + 堆内存申请
c语言·开发语言
dyyx11110 小时前
C++编译期数据结构
开发语言·c++·算法
曼巴UE510 小时前
UE C++ 组件 非构造函数创建的技巧
开发语言·c++