Java對象定位

1. 對象定位方式

  1. 句柄池
  2. 直接指針

在這裏插入圖片描述

2. 句柄池 vs. 直接指針

句柄池

  • 不管堆中的實例對象地址是否改變,是否被垃圾回收,棧中的引用是不會發生改變的,改變的是堆中句柄池所保存的內存地址,則棧中的reference不需要被修改
  • GC效率比較高

直接指針

  • 引用直接指向堆內存中的對象地址,相比使用句柄,減少了一次尋址過程,減少了一次性能開銷,由於對象的訪問定位頻率非常高,節約了性能,速度快。

3. 總結

二者沒有優劣之分,Hotspot使用的是直接指針