从理论到实践,刨根问底探索Java对象内存布局
本篇文章先是介绍了Java对象的内存布局(由对象头、实例数据、对齐填充三部分组成);之后详细的介绍了对象头的数据结构(Mark Word、Klass Pointer、数组长度),以及不同锁状态下(01无锁、00轻量级锁、10重量级锁、11GC标记),Mark Word中的数据格式以及代表的含义;最后通过JOL打印出对象的内存布局,进一步验证了前半部分枯燥的理论知识。
本篇文章先是介绍了Java对象的内存布局(由对象头、实例数据、对齐填充三部分组成);之后详细的介绍了对象头的数据结构(Mark Word、Klass Pointer、数组长度),以及不同锁状态下(01无锁、00轻量级锁、10重量级锁、11GC标记),Mark Word中的数据格式以及代表的含义;最后通过JOL打印出对象的内存布局,进一步验证了前半部分枯燥的理论知识。