天天看點

jvm記憶體結構(1),Java進階開發面試

特點:

線程私有

、線程請求的棧深度超過虛拟機運作的深度,将會抛出

StackOverflowError異常

本地方法棧

介紹:

  1. Hot-Spot虛拟機直接将

    本地方法棧

    虛拟機棧

    合二為一。

特點:

線程私有

,在棧深度擴充失敗時也會抛出

StackOverflowError

異常

java堆

介紹:

  1. 《java虛拟機規範中》堆描述:

    所有的對象執行個體以及數組都應當在堆上配置設定

  2. java堆是

    垃圾收集管理

    的記憶體區域,也可以稱作

    GC堆

  3. 堆可以處于

    實體上不連續的記憶體空間中

    ,但在邏輯上應該被視為連續的,但是對于

    大對象

    數組

    ,很可能會要求連續的記憶體空間

特點:

線程共享

,堆記憶體不夠時會抛出

OutOfMemoryError

異常

方法區

介紹:

  1. 儲存

    已被虛拟機加載的類型資訊

    常量

    靜态變量

    即時編譯器編譯後的代碼緩存

  2. jdk8以前Hot-Spot方法區的實作稱為

    永久代

    ,是

    堆記憶體

    的一部分
  3. jdk9以後Hot-Spoy方法區的實作稱為

    元空間

    ,使用的是

    直接記憶體

特點:

線程共享

、無法滿足新的配置設定需求時會抛出

OutOfMemoryError

異常

運作時常量池

介紹:

  1. 方法區的一部分

    ,Class檔案中除了有類的

    版本

    字段

    方法

    接口

    等描述資訊外,還有一個是

    常量池表

    ,用于存放編譯器生成的各種

    字面量

    符号引用

    ,這部分内容會在

    類加載後

    放入

    運作時常量池

  2. 一般會把

    符号引用

    翻譯成

    直接引用

    再放入

    運作時常量池

  3. 運作時常量池具有

    動态性

    ,并非隻有編譯期間才能産生

    常量

    ,運作時也可以将

    常量

    放入池中,比如

    String的intern()

    方法

特點:無法申請記憶體時抛出

OutOfMemoryError

異常

直接記憶體

直接記憶體并不是虛拟機運作時的記憶體區域

介紹:

最後

經過日積月累, 以下是小編歸納整理的深入了解Java虛拟機文檔,希望可以幫助大家過關斬将順利通過面試。

由于整個文檔比較全面,内容比較多,篇幅不允許,下面以截圖方式展示 。如有需要擷取資料文檔的朋友,可以點選這裡免費擷取

jvm記憶體結構(1),Java進階開發面試
jvm記憶體結構(1),Java進階開發面試
jvm記憶體結構(1),Java進階開發面試
jvm記憶體結構(1),Java進階開發面試
jvm記憶體結構(1),Java進階開發面試
jvm記憶體結構(1),Java進階開發面試
jvm記憶體結構(1),Java進階開發面試

.(img-FjCVtRiR-1628583368457)]

[外鍊圖檔轉存中…(img-BG8cwaTF-1628583368459)]

[外鍊圖檔轉存中…(img-maOktgUB-1628583368460)]

由于篇幅限制,文檔的詳解資料太全面,細節内容太多,是以隻把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的内容!