深入理解Java虚拟机(5)--对象的访问定位

建立对象是为了使用对象,我们的Java程序需要通过栈上的reference数据来操作堆上的具体对象。由于reference类型在Java虚拟机规范中之规定了一个指向对象的引用,并没用定义这个引用因该通过何种方式去定位、访问队中的对象的具体位置,所以对象的访问方式也是通过虚拟机实现而定的。

访问方式分类:

1、直接指针:
reference 中存储的直接就是对象地址,对象实例数据中有一块区域存储对象的类型数据。

这里写图片描述

2、对象句柄:
reference中存储的是对象的句柄信息,句柄包含对象的实例数据和对象类型数据的地址信息。

这里写图片描述

直接指针:

优点:速度更快,节省了一次指针定位的开销;
缺点:在对象需要进行移动时,需要修改reference的地址信息。

对象句柄:

优点:在对象进行移动时,只需要修改句柄中实例数据指针;
缺点:由于需要对对象实例数据和对象类型数据进行两次定位,速度比直接指针较慢。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值