您好,登錄后才能下訂單哦!
小編給大家分享一下JVM中運行時數據區有幾種類型,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
JVM在運行java程序時,會把它管理的內存劃分為如圖所示的運行時數據區域。大致分為兩種內存空間:
隨JVM進程啟動和停止而創建和銷毀的線程數據共享內存區域;
隨線程創建及線束而創建及銷毀的線程私有數據內存區域。
注意:上面對方法區有段描述,其實方法區為規范,一直存在,所謂永久代還是元數據空間,只是方法區的實現。JDK1.8版本后,hotspot方法區中的永久代已被元數據空間替換,而且不再使用堆內存空間,直接移到了本地內存中。
個人認為把永久代移出堆中的原因:
1、http://openjdk.java.net/jeps/122 中有官方的解釋,建議把類的元數據放入本地內存,常量池和表態變量還是放在堆中,因為類的回收效果不明顯,放入堆中,就會增加GC的次數;
2、和其它虛擬機統一兼容,JRockit與J9虛擬機從沒有永久代的實現。
以上是“JVM中運行時數據區有幾種類型”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。