垃圾回收 为什么对象的最大年龄为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 @   紫薇哥哥  阅读(150)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示