JVM(Java虛擬機)是一個抽象機器。 它是一個提供可以執行Java位元組碼的運行時環境的規範。JVM可用於許多硬體和軟體平臺(即JVM是平臺相關的)。
什麼是JVM?
JVM(Java虛擬機)是:
指定Java虛擬機的工作的規範。 但實現提供程式是獨立的選擇演算法。 其實現是由Sun和其他公司提供。
它的實現被稱為JRE(Java運行時環境)。
運行時實例只要在命令提示符上編寫java命令來運行java類,就會創建JVM的實例。
JVM(Java虛擬機)能做什麼?
JVM執行以下操作:
- 加載代碼
- 驗證代碼
- 執行代碼
- 提供運行時環境
JVM提供了以下定義:
- 記憶體區
- 類檔格式
- 寄存器集合
- 垃圾收集堆
- 致命錯誤報告等
JVM(Java虛擬機)內部體系結構
下麵讓我們來瞭解JVM的內部架構。它包含類加載器,記憶體區域,執行引擎等。
1)類加載器
Classloader
是JVM的一個子系統,用於加載類檔。
2)類(方法)區域
類(方法)區域存儲每個類結構,例如運行時常量池,字段和方法數據,方法的代碼。
3)堆
它是分配對象的運行時數據區。
4)堆疊
Java堆疊存儲幀。它保存局部變數和部分結果,並在方法調用和返回中起作用。
每個線程都有一個私有JVM堆疊,同時創建線程。每次調用方法時都會創建一個新的框架。 框架在其方法調用完成時被銷毀。
5)程式計數器寄存器
PC(程式計數器)寄存器。 它包含當前正在執行的Java虛擬機指令的地址。
6)本地方法堆疊
它包含應用程式中使用的所有本地方法。
7)執行引擎
執行引擎包含:
- 虛擬處理器
- 解釋器:讀取位元組碼流,然後執行指令。
- 即時(JIT)編譯器:它用於提高性能,JIT編譯的同時有類似位元組代碼部分的功能,從而減少編譯所需的時間。編譯器是指從Java虛擬機(JVM)的指令集到特定CPU的指令集的轉換器。
上一篇:
JDK,JRE和JVM之間的區別
下一篇:
Java變數和數據類型