Java学习笔记-句柄和直接引用

句柄

概念

句柄通俗来讲就是指针的指针。
如果使用句柄访问对象的话,会在JAVA堆中划出一部分内存作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据的各自具体的地址信息。
在这里插入图片描述

优缺点

优点:

  • 当对象被移动时(比如GC时),只需更改句柄中的实例数据指针,而reference不需要改变。
    这样做的好处是如果一个对象被多个reference所引用,那么当对象地址被修改时,只需更改一个句柄地址即可,而不需要更改多个reference。提高效率。

缺点:

  • 定位对象时需要两次定位。

直接指针

概念

直接指针的好处就是速度快,它节省了一次指针定位的时间开销,由于对象访问在Java中是非常平凡的,因此这类开销积少成多也是一项极为可观的执行成本。
在这里插入图片描述

优缺点

优点:

  • 定位速度更快

缺点:

  • 当对象被移动时,所有指向该对象的reference都需要被改变,耗时。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值