JVM 中对象的访问定位
对
句柄访问对象
、直接指针访问对象
的简单介绍
主流的两种方式:
- 句柄访问对象
- 直接指针访问对象
通过句柄访问对象:
注
: 句柄池中包含了实例数据和类型数据,类型数据在方法区中
直接指针访问对象
两种方式有各自优势:
- 对于方式一而言,reference中存储的地址是稳定的地址,对象移动(垃圾回收时)不需要修改其值,仅需要修改对象句柄的地址;
- 而对于方式二,则需要修改reference中存储的地址。最大好处就是速度快,它节约了一次指针定位的时间开销;HotSpot采用第二种。
参考:
- 《深入理解java虚拟机》–周志明