对象的内存分布

https://segmentfault.com/a/1190000007652363 值得一看segmentfault

对象的内存布局

虚拟机中,对象在内存中的布局划分为3个区域:对象头,实例数据以及对齐填充。数组

对象头布局

通常包含两部分信息,第一部分用于存储对象自身的运行时数据,例如HashCodeGC分代年龄等信息。另外一部分用于存储对象的类型指针,该指针指向它的类元数据,JVM经过这个指针肯定对象是哪一个类的实例。以前提到对象头通常包含两部分信息,这是由于若是对象是一个数组,那么对象头还须要有额外的空间用于存储数组的长度。spa

实例数据

实例数据部分是对象真正存储有效信息的区域,存储了代码中定义的各类字段的内容,包括从父类继承下来的字段和子类中定义的字段。指针

 

对齐填充

对齐填充这部分不是必须存在的,这部分仅仅是起着占位符的做用。code

相关文章
相关标签/搜索