建立对象后,java程序通过栈的reference数据来操作堆上的对象。java虚拟机访问方式有两种:使用句柄,直接指针
1、使用句柄
java堆上划分出一块内存条作为句柄池,reference存储的是对象的句柄地址。句柄中包含对象实例数据,类型数据的地址。
2、直接指针
reference存储的是对象地址
3、总结
句柄访问最大好处就是reference中存储的稳定的句柄地址,有对象的移动时只会改变句柄的实例数据指针,而reference本身不需要修改。
直接指针访问最大好处是速度快,节省了一次定位时间的开销。
Sun HotSpot使用第二种对象访问方式。