您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么理解Java虛擬機”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Jvm內存結構
>線程隔離區域說明:
線程私有
是一塊內存空間
唯一的一個在Java虛擬機規范中沒有規定任何OOM情況的區域(不會OOM?)
線程私有
聲明周期與線程相同
在Java虛擬機規范中規定兩種異常狀況: 1、線程的棧深度大于虛擬機所允許,拋出StackOverflowError異常; 2、如果虛擬機棧可以動態擴展,當擴展到無法申請足夠的內存,拋出OOM PS:每一個方法在執行的同時都會創建一個棧幀(Stack Frame),用于存儲局部變量表、操作數棧、動態鏈接、方法出口等信息,每一個方法從調用到完成,就對應著一個棧幀從入棧到出棧的過程
線程私有
聲明周期與線程相同
在Java虛擬機規范中規定兩種異常狀況: 1、線程的棧深度大于虛擬機所允許,拋出StackOverflowError異常; 2、如果虛擬機棧可以動態擴展,當擴展到無法申請足夠的內存,拋出OOM
PS:可以看出本地方法棧和Java虛擬機棧的特征基本一致。 區別是:Java虛擬機棧為執行Java方法服務,而本地方法棧為Native方法服務。
> 線程共享區域說明:
線程共享
存放對象實例
虛擬機內存中最大的一塊
邏輯連續,物理不需要連續
存在OOM
是Java垃圾回收主要的區域
線程共享
存儲被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯后的代碼
≈永久代(Permanent Generation)本質不等價
不需要連續內存
存在垃圾回收,但是回收區域僅限于常量池和類型的卸載
存在OOM
“怎么理解Java虛擬機”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。