更新時間:2021-04-28 12:09:52 來源:動力節點 瀏覽1373次
Java虛擬機的簡單介紹,讓大家了解JVM可以做什么,JVM的作用。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。
Java虛擬機(JVM)是運行Java字節碼的虛擬機,它是java編程語言的核心。當我們運行程序時,JVM負責將字節代碼轉換為特定于機器的代碼。JVM還依賴于平臺,并提供核心Java函數,如內存管理,垃圾收集,安全性等。
JVM被稱為虛擬,因為它提供的接口不依賴于底層操作系統和機器硬件。這種與硬件和操作系統的獨立性使得java程序可以在任何地方進行一次寫入。
在現實世界中,JVM是一種規范,它提供了一個可以執行Java字節碼的運行時環境。
(1)JVM執行以下操作:
1)加載代碼
2)驗證代碼
3)執行代碼
4)提供運行時環境
(2)JVM提供以下定義:
1)記憶區
2)類文件格式
3)注冊集
4)垃圾收集堆
5)致命錯誤報告等
讓我們來了解一下JVM的內部架構。它包含有類加載器,內存區域,執行引擎等。
(1)類加載器
Classloader是JVM的子系統,用于加載類文件。每當我們運行java程序時,它首先由類加載器加載。Java中有三個內置的類加載器。
1)Bootstrap ClassLoader:這是第一個類擴展,它是Extension類加載器的超類。它加載rt.jar文件,該文件包含Java Standard Edition的所有類文件,如java.lang包類,java.net包類,java.util包類,java.io包類,java.sql包類等。
2)Extension ClassLoader:這是Bootstrap的子類加載器和System類加載器的父類加載器。它遍歷位于$ JAVA_HOME / jre / lib / ext目錄中的jar文件。
3)System / Application ClassLoader:這是Extension類加載器的子類加載器。它從類路徑加載類文件。默認情況下,classpath設置為當前目錄。您可以使用“-cp”或“-classpath”開關更改類路徑。它也被稱為Application類加載器。
(2)類(方法)區域
Method區域存儲每類結構,例如運行時常量池,字段和方法數據,方法的代碼。
(3)堆
Heap是分配對象的運行時數據區域。
(4)堆疊
Java 堆疊存儲幀。Stack包含局部變量和部分結果,并在方法調用和返回中起作用。
每個線程都有一個私有JVM堆棧,與線程同時創建。
每次調用方法時都會創建一個新幀。當方法調用完成時,框架將被銷毀。
(5)程序計數器寄存器(Program Counter Register)
PC(Program Counter)寄存器包含當前正在執行的Java虛擬機指令的地址。
(6)原生方法堆棧(Native Method Stack)
它包含應用程序中使用的所有本機方法。
(7)執行引擎(Execution Engine)
它包含:
1)虛擬處理器
2)解釋器:讀取字節碼流然后執行指令。
3)實時(JIT)編譯器:用于提高性能。JIT同時編譯具有類似功能的部分字節代碼,因此減少了編譯所需的時間。這里,術語“編譯器”指的是從Java虛擬機(JVM)的指令集到特定CPU的指令集的轉換器。
(8)Java本地接口(Java Native Interface)
Java Native Interface(JNI)是一個框架,它提供了一個接口,用于與另一種語言(如C,C ++,Assembly等)編寫的另一個應用程序進行通信.Java使用JNI框架將輸出發送到控制臺或與OS庫交互。
以上就是動力節點小編介紹的“Java虛擬機是什么的簡單介紹”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習