java進階篇--聊聊JVM 的內存佈局和運行原理?

JVM(Java Virtual Machine,Java 虛擬機)顧名思義就是用來執行 Java 程序的“虛擬主機”,實際的工作是將編譯的 class 代碼(字節碼)翻譯成底層操作系統可以運行的機器碼並且進行調用執行,這也是 Java 程序能夠“一次編寫,到處運行”的原因(因爲它會根據特定的操作系統生成對應的操作指令)。JVM 的功能很強大,像 Java 對象的創建、使用和銷燬,還有垃圾回收以及某些高級的性能優化,例如,熱點代碼檢測等功能都是在 JVM 中進行的。因爲 JVM 是 Java 程序能夠運行的根本,因此掌握 JVM 也已經成了一個合格 Java 程序員必備的技能。

我們本課時的面試題是,聊聊 JVM 的內存佈局和運行原理?

回答:

JVM 的種類有很多,比如 HotSpot 虛擬機,它是 Sun/OracleJDK 和 OpenJDK 中的默認 JVM,也是目前使用範圍最廣的 JVM。我們常說的 JVM 其實泛指的是 HotSpot 虛擬機,還有曾經與 HotSpot 齊名爲“三大商業 JVM”的 JRockit 和 IBM J9 虛擬機。但無論是什麼類型的虛擬機都必須遵守 Oracle 官方發佈的《Java虛擬機規範》,它是 Java 領域最權威最重要的著作之一,用於規範 JVM 的一些具體“行爲”。

同樣對於 JVM 的內存佈局也一樣,根據《Java虛擬機規範》的規定,JVM 的內存佈局分爲以下幾個部分:

以上 5 個內存區域的主要用途如下。

1. 堆

堆(Java Heap) 也叫 Java 堆或者是 GC 堆,它是一個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章