您好,登錄后才能下訂單哦!
本篇內容介紹了“JVM內存管理方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
JVM運行時數據區由程序計數器、堆、虛擬機棧(棧)、本地方法棧、方法區部分組成。
1)程序計數器
幾乎不占有內存。用于取下一條執行的指令。
2)堆
所有通過new創建的對象的內存都在堆中分配,其大小可以通過-Xmx和-Xms來控制。堆被劃分為新生代和老年代,新生代又被進一步劃分為Eden和Survivor區,最后Survivor由FromSpace和ToSpace組成,結構圖如下所示:
新生代。新建的對象都是用新生代分配內存,Eden空間不足的時候,會把存活的對象轉移到Survivor中,新生代大小可以由-Xmn來控制,也可以用-XX:SurvivorRatio來控制Eden和Survivor的比例,老生代。用于存放新生代中經過多次垃圾回收仍然存活的對象
3)棧
每個線程執行每個方法的時候都會在棧中申請一個棧幀,每個棧幀包括局部變量區和操作數棧,用于存放此次方法調用過程中的臨時變量、參數和中間結果。
4)本地方法棧
用于支持native方法的執行,存儲了每個native方法調用的狀態
5)方法區
存放了要加載的類信息、靜態變量、final類型的常量、屬性和方法信息。JVM用永久代(PermanetGeneration)來存放方法區,(在JDK的HotSpot虛擬機中,可以認為方法區就是永久代,但是在其他類型的虛擬機中,沒有永久代的概念,有關信息可以看周志明的書)可通過-XX:PermSize和-XX:MaxPermSize來指定最小值和最大值。
“JVM內存管理方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。