方式一
使用句柄访问方式
该方式优势是reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为,复制算法,标记整理,标记清除都需要移动对象)时只会改变句柄中的实例数据指针
方式二
使用直接指针访问对象(主流虚拟机sun HotSpot使用该方式)
该方式优势是速度快,它节省了一次指针定位的时间开销(换句话说:不用先找到地址的地址,再找到地址,最后访问到对象。而是直接访问对象的地址去找对象),由于我们访问对象比较频繁,因此在开销上积少成多也能减少不少的成本。
学习资料:《深入理解Java虚拟机:JVM高级特性与最佳实践》