一个Object对象占用几个字节
结论:开启压缩指针和不开启压缩指针都是16个字节
开启压缩指针的时候会占用12个字节 为了防止缓存伪共享 会有4个字节的Padding
不开启压缩指针的时候就是16个字节
JVM内存分配 OOP
对象头: 1.MakeOop :存储hashcode 垃圾回收时候的分代年龄 synchronized锁升级过程中的锁标记 (无锁、偏向锁、轻量级锁、重量级锁) 32位操作系统占4个字节 64位操作系统占8个字节
2.KlassOop: 类元指针 当前实例对象所属哪个类 开启压缩指针的时候占4个字节 不开启到时候 占8个字节
3.length:init 数组长度 当前对象是个数组的情况下占4个字节
实例数据:instance data 存储对象中的字段信息
对其填充: padding 按照8个字节的倍数来对齐 避免伪共享

浙公网安备 33010602011771号