JVM学习–总索引
JVM学习–对象的访问定位
Java建立的对象是放在堆中的,我们是通过栈中的引用去访问堆中的对象的。
目前虚拟机有两种方通过引用去访问堆中的对象,一种是句柄访问,另一种是直接指针访问。
句柄访问
此时,Reference 保存的是句柄地址。
使用这种方式的好处是,当进行垃圾回收后,如果对象被移动,只需要改变句柄池中对象实例指针地址,Reference不用修改。
直接指针访问
此时,Reference 保存的是对象地址。
使用这种方式的好处是,访问对象的速度更快,因为少了句柄访问对象这个中间过程。
Hotspot使用的是直接指针访问。