对象的访问定位

那年仲夏 提交于 2020-04-06 12:34:28

主流的有两种方式:使用句柄、直接指针。具体的取决于虚拟机实现

各有优势。

使用句柄:在GC垃圾回收中,整理移动对象时,不需要修改对象数据中的指针内容。只要改变reference的指针地址

直接指针:节省一次指针定位的时间。因此访问对象是相当频繁的,积少成多。

对象的内存分布:

  • 对象头。主要保存:运行时数据,比如:哈希吗,GC分代年龄等。如果是直接指针方式,还会保存类型指针

  • 实例化数据:无论是从父类继承的还是本身的都保存在这

  • 对齐填充:占位符,由于要求对象大小是8字节倍数,因此这里作为填充

小结:对象的类型指针并不要求保存在对象数据中,主要取决于虚拟机的对象的访问定位方式

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!