JVM 三

一.对象是如何被访问的
在Java本地变量表也就是栈中的局部变量表(栈 在Hotspot中将本地方法栈和java虚拟机栈合二为一 )中会有reference数据来操作堆上的对象实例。主流有两种访问方式 句柄和直接指针
1.句柄  需要维护一个句柄池 通过reference指向句柄然后通过句柄指向对象实例数据的指针和对象类信息的指针

2.直接地址访问  此时reference直接指向堆中具体的对象实例 

 通过直接指针有个好处就是在节省了一次指针定位的开销,但是坏处就是在对象地址发生修改(GC时的复制算法就会修改对象地址)时需要修改reference数据,句柄只需要修改句柄中指向的对象实例地址不需要修改reference数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值