Java虛擬機內(nèi)部體系結(jié)構(gòu)
- 作者:新網(wǎng)
- 來源:新網(wǎng)
- 瀏覽:100
- 2018-05-02 17:55:57
JVM(Java虛擬機)是一個抽象機器。 它是一個提供可以執(zhí)行Java字節(jié)碼的運行時環(huán)境的規(guī)范。JVM可用于許多硬件和軟件平臺(即JVM是平臺相關(guān)的)。
JVM(Java虛擬機)是一個抽象機器。 它是一個提供可以執(zhí)行Java字節(jié)碼的運行時環(huán)境的規(guī)范。JVM可用于許多硬件和軟件平臺(即JVM是平臺相關(guān)的)。
<
div> 什么是JVM?
JVM(Java虛擬機)是:
指定Java虛擬機的工作的規(guī)范。 但實現(xiàn)提供程序是獨立的選擇算法。 其實現(xiàn)是由Sun和其他公司提供。
它的實現(xiàn)被稱為JRE(Java運行時環(huán)境)。
運行時實例只要在命令提示符上編寫
java命令來運行java類,就會創(chuàng)建JVM的實例。
JVM(Java虛擬機)能做什么?
JVM執(zhí)行以下操作:
加載代碼
驗證代碼
執(zhí)行代碼
提供運行時環(huán)境
JVM提供了以下定義:
內(nèi)存區(qū)
類文件格式
寄存器集合
垃圾收集堆
致命錯誤報告等
JVM(Java虛擬機)內(nèi)部體系結(jié)構(gòu)
下面讓我們來了解JVM的內(nèi)部架構(gòu)。它包含類加載器,內(nèi)存區(qū)域,執(zhí)行引擎等。
1)類加載器
Cla
ssloader是JVM的一個子系統(tǒng),用于加載類文件。
2)類(方法)區(qū)域
類(方法)區(qū)域存儲每個類結(jié)構(gòu),例如運行時常量池,字段和方法數(shù)據(jù),方法的代碼。
3)堆
它是分配對象的運行時數(shù)據(jù)區(qū)。
4)堆棧
Java堆棧存儲幀。它保存局部變量和部分結(jié)果,并在方法調(diào)用和返回中起作用。
每個線程都有一個私有JVM堆棧,同時創(chuàng)建線程。每次調(diào)用方法時都會創(chuàng)建一個新的框架。 框架在其方法調(diào)用完成時被銷毀。
5)程序計數(shù)器寄存器
PC(程序計數(shù)器)寄存器。 它包含當前正在執(zhí)行的Java虛擬機指令的地址。
6)本地方法堆棧
它包含應(yīng)用程序中使用的所有本地方法。
7)執(zhí)行引擎
執(zhí)行引擎包含:
虛擬處理器
解釋器:讀取字節(jié)碼流,然后執(zhí)行指令。
即時(JIT)編譯器:它用于提高性能,JIT編譯的同時有類似字節(jié)代碼部分的功能,從而減少編譯所需的時間。編譯器是指從Java虛擬機(JVM)的指令集到特定CPU的指令集的轉(zhuǎn)換器。
以上就是小編總結(jié)的虛擬機內(nèi)部結(jié)構(gòu)的全部內(nèi)容。