垃圾回收 为什么对象的最大年龄为15?

原因:因为Mark Word中使用4个bit记录对象的年龄,最大就是15

相关知识

Java对象存储在堆(Heap)内存中,一个Java对象包含 对象头、对象体和对齐字节;

对象的几个部分的作用:
1、对象头中的Mark Word(标记字)主要用来表示对象的 线程锁状态,还可以用来存放该对象的hashCode、配合GC;

2、Klass Word(类指针)是一个指向方法区中Class信息的指针,意味着该对象可通过该指针,随时知道自己是哪个类的实例;

3、(可选):数组长度也是占用64位(8字节)的空间,只有当对象是一个数组对象,才会有这个部分;

4、对象体是用于保存 对象属性 和 值 的主体部分,占用内存空间取决于对象的属性数量和类型;

5、(不一定准确)对齐字节主要是为了减少堆内存的碎片空间

Mark Word(标记字)

学习连接:https://blog.csdn.net/qq_26542493/article/details/90938070

posted @ 2022-03-20 17:59  紫薇哥哥  阅读(143)  评论(0编辑  收藏  举报