特點:
線程私有
、線程請求的棧深度超過虛拟機運作的深度,将會抛出
StackOverflowError異常
本地方法棧
介紹:
- Hot-Spot虛拟機直接将
和本地方法棧
合二為一。虛拟機棧
特點:
線程私有
,在棧深度擴充失敗時也會抛出
StackOverflowError
異常
java堆
介紹:
- 《java虛拟機規範中》堆描述:
所有的對象執行個體以及數組都應當在堆上配置設定
- java堆是
的記憶體區域,也可以稱作垃圾收集管理
GC堆
- 堆可以處于
,但在邏輯上應該被視為連續的,但是對于實體上不連續的記憶體空間中
、大對象
,很可能會要求連續的記憶體空間數組
特點:
線程共享
,堆記憶體不夠時會抛出
OutOfMemoryError
異常
方法區
介紹:
- 儲存
、已被虛拟機加載的類型資訊
、常量
、靜态變量
即時編譯器編譯後的代碼緩存
- jdk8以前Hot-Spot方法區的實作稱為
,是永久代
的一部分堆記憶體
- jdk9以後Hot-Spoy方法區的實作稱為
,使用的是元空間
直接記憶體
特點:
線程共享
、無法滿足新的配置設定需求時會抛出
OutOfMemoryError
異常
運作時常量池
介紹:
- 是
,Class檔案中除了有類的方法區的一部分
、版本
、字段
、方法
等描述資訊外,還有一個是接口
,用于存放編譯器生成的各種常量池表
和字面量
,這部分内容會在符号引用
放入類加載後
運作時常量池
- 一般會把
翻譯成符号引用
再放入直接引用
運作時常量池
- 運作時常量池具有
,并非隻有編譯期間才能産生動态性
,運作時也可以将常量
放入池中,比如常量
方法String的intern()
特點:無法申請記憶體時抛出
OutOfMemoryError
異常
直接記憶體
直接記憶體并不是虛拟機運作時的記憶體區域
介紹:
最後
經過日積月累, 以下是小編歸納整理的深入了解Java虛拟機文檔,希望可以幫助大家過關斬将順利通過面試。
由于整個文檔比較全面,内容比較多,篇幅不允許,下面以截圖方式展示 。如有需要擷取資料文檔的朋友,可以點選這裡免費擷取
.(img-FjCVtRiR-1628583368457)]
[外鍊圖檔轉存中…(img-BG8cwaTF-1628583368459)]
[外鍊圖檔轉存中…(img-maOktgUB-1628583368460)]
由于篇幅限制,文檔的詳解資料太全面,細節内容太多,是以隻把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的内容!