句柄和直接指針


一、句柄訪問方式:
使用句柄訪問對象,會在堆中開辟一塊內存作為句柄池,句柄中儲存了對象實例數據(屬性值結構體)的內存地址,訪問類型數據的內存地址(類信息,方法類型信息),
對象實例數據一般也在heap中開辟,類型數據一般儲存在方法區中。使用句柄訪問的好處是句柄中儲存的是穩定的對象地址,當對象被移動時候,只需要更新句柄中的對象實例部分的值即可,句柄本身不用被移動修改。

 

 

二、指針訪問方式:
直接指針訪問方式指reference中直接儲存對象在heap中的內存地址,但對應的類型數據訪問地址需要在實例中存儲,使用直接指針的好處相對於句柄來講,少了一次指針定位時間的開銷,缺點是,當對象被移動時(如進行GC后的內存重新排列),對象的引用(reference)也需要同步更新。

 

 

三、HotSpot虛擬機使用的是直接指針的形式訪問對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM