对象的访问定位

目前主流的访问方式有使用句柄和直接指针两种方式。

句柄访问:Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息。

 

直接指针访问:reference中存储的直接就是对象地址

 

两种方式对比:

使用句柄来访问最大的好处就是reference中存储的就是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference不需要修改。

而使用直接指针访问方式最大的好处就是速度快,它节省了一次指针定位的时间开销,由于对象的访问在Java中非常频繁,因此这类开销极少成多后也是一项非常可观的执行成本。

 

                                   摘抄自《深入理解Java虚拟机:JVM高级特性与最佳实践》(第二版) 周志明著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值