5

上一篇文章讲解了 java 虚拟机中的内存布局,这里就稍作拓展,聊聊 java 对象在虚拟机中的一些存储细节吧。


本文主要围绕虚拟机中对象如何创建?对象内存都放些什么?如何访问对象内存?这么三个问题来进行解答。

注:鉴于时间和精力的有限,本系列接下来的文章都将采取一种特殊的分享方式,力争使用思维导图或者其他模型图,将问题的答案用一张图进行说明。对于额外的思考,在其后进行补充说明。

虚拟机中对象如何创建?

一张图总结

clipboard.png

对象的内存都放些什么?

一张图总结

clipboard.png

如何访问对象内存?

一张图总结

clipboard.png

句柄方案示意图

clipboard.png

直接指针方案示意图

clipboard.png

小结

之所以想要记录这些细节的知识点,有两方面原因。

  • 了解的原理越深,根据原理推倒更多的适用场景越方便。

  • 知识总是相通的,多总结一些这样的知识细节,说不定哪天就会突然出现类似的场景,在思路上给你以启迪。

希望大家都能有所收获吧,以上。

参考文档

联系作者

zhihu.com
segmentfault.com
oschina.net


Sivan
525 声望90 粉丝

行业分两个赛道,一个是ToC,一个是 ToB。