对象的访问定位

本文深入探讨了JVM中对象引用的两种访问方式:句柄访问和直接指针访问。句柄访问通过句柄池实现,对象移动时仅需更新实例数据指针;直接指针则直接指向堆中的实例,包含类型指针,更高效。HotSpot JVM选择了直接指针以减少内存访问成本。
摘要由CSDN通过智能技术生成

一 JVM 是如何通过栈帧中的对象引用访问到其内部的对象实例?

二 对象访问的两种方式

1 句柄访问

句柄访问就是说栈的局部变量表中,记录的对象的引用,然后在堆空间中开辟了一块空间,也就是句柄池。
优点
reference 中存储稳定句柄地址,对象被移动(垃圾收集时移动对象很普遍)时只会改变句柄中实例数据指针即可,reference 本身不需要被修改。

2 直接指针( HotSpot 采用)

直接指针是局部变量表中的引用,直接指向堆中的实例,在对象实例中有类型指针,指向的是方法区中的对象类型数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值