JVM-对象的头、域
对象的头、域
头
对象中保存对象本身信息的部分被称为“头”。头的主要含有一下信息
- 对象的大小
- 对象的种类
如果不清楚对象的大小和种类,就会发生问题,例如无法判别内存中存储对象的
边界,因此头对GC来说非常重要。
此外,头中事先存有运行GC所需的信息。然而根据GC算法的不同,信息也不同。
比如GC标记-清楚算法,就是在对象的头部中设置一个flag标志,用来记录对象是否
已标记,从而管理各个对象。对象的使用者本身无法改变"头"的信息
域
使用者在对象中可访问的部分被称为“域”。对象使用者会引用或替换对象的域值。
域中的数据类型大致分为以下两种
- 指针
- 非指针
参考资料
《垃圾回收的算法与实现》[ 日] 中村成洋 相川光(著)