程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> <<深入Java虛擬機>>-第二章-Java內存區域-學習筆記,java-java

<<深入Java虛擬機>>-第二章-Java內存區域-學習筆記,java-java

編輯:JAVA綜合教程

<<深入Java虛擬機>>-第二章-Java內存區域-學習筆記,java-java


Java運行時內存區域

  Java虛擬機在運行Java程序的時候會將它所管理的內存區域劃分為多個不同的區域。每個區域都有自己的用途,創建以及銷毀的時間。有的隨著虛擬機的啟動而存在,有的則是依賴用戶線程來啟動和銷毀。

  • 使用句柄   

     Java堆中會劃分出一塊內存來作為句柄池,reference中存儲的就是對象的句柄地址,而句柄中包含了對象的實例數據和類型數據各自的具體地址信息。

  • 直接指針

     使用直接指針的訪問方式,reference中存放的就直接是對象的地址。

  兩種訪問方式優缺點:

    使用句柄訪問方式的最大好處就是reference中存放的是穩定的句柄地址,在對象被移動(垃圾收集時移動對象時非常普遍的行為)時只需要修改句柄中的實例數據指針,而reference本身不用修改。

    使用直接指針訪問方式的最大好處就是速度更快,它節省了中間一次指針定位的時間開銷,對象的訪問在Java中非常頻繁,這類開銷積少成多也是非常可觀的執行成本。

    各個廠商的虛擬機不同,Sun HotSpot虛擬機采用的是直接指針訪問方式進行對象的訪問。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved