1. 程式人生 > >JVM物件的訪問定位

JVM物件的訪問定位

1 主流的訪問方式有使用控制代碼和直接指標兩種

 1使用控制代碼訪問

Java堆中將會劃分出一塊記憶體來作為控制代碼池,reference中儲存的就是物件的控制代碼地址,而控制代碼中包含了物件例項資料與型別資料的具體各自的地址資訊。 

 


2使用直接指標訪問

Java堆物件的佈局中就必須考慮如何放置訪問型別資料的相關資訊,reference中儲存的直接就是物件地址。

 
3控制代碼來訪問的最大好處

就是reference中儲存的是穩定控制代碼地址,在物件被移動(垃圾收集時移動物件是非常普遍的行為)時只會改變控制代碼中的例項資料指標,而reference本身不需要被修改。 
4直接指標來訪問的最大好處

就是速度更快,它節省了一次指標定位的時間開銷,由於物件訪問的在Java中非常頻繁,因此這類開銷積小成多也是一項非常可觀的執行成本。

5 HotSpot的物件訪問方式

就虛擬機器HotSpot而言,它是使用第二種方式進行物件訪問,但在整個軟體開發的範圍來看,各種語言、框架中使用控制代碼來訪問的情況也十分常見。