Java对象内存布局和对象头
10、Java对象内存布局和对象头

10.1 先从阿里及其它大厂面试题说起

10.2 周志明老师JVM第3版

10.3 对象在堆内存中的存储布局


10.4 对象标记Mark Word保存什么




10.5 参考尚硅谷宋红康老师原图

10.6 Hotspot术语表官网
http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html

10.7 底层源码理论证明
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/89fb452b3688/src/share/vm/oops/oop.hpp

- _mark字段是mark word,_metadata是类指针klass pointer,对象头(object header)即是由这两个字段组成,这些术语可以参考Hotspot术语表。

10.8 32位(看一下即可,不用学了,以64位为准)

10.9 64位重要


10.9.1 oop.hpp

10.9.2 markOop.hpp


10.9.3 markword(64位)分布图,对象布局、GC回收和后面的锁升级就是对象标记MarkWord里面标志位的变化

10.10 JOL POM
1 | <!-- |
10.11 JOL 小试一下

10.12 默认开启压缩说明

10.12.1 结果

10.13 手动关闭压缩再看看结果

10.14 换成其他对象试试结果
