更新時間:2022-10-11 11:05:31 來源:動力節點 瀏覽1607次
Java 虛擬機 (JVM)是一個引擎,它提供運行時環境來驅動 Java 代碼或應用程序。它將 Java 字節碼轉換為機器語言。JVM 是 Java 運行時環境 (JRE) 的一部分。在其他編程語言中,編譯器為特定系統生成機器代碼。但是,Java 編譯器為稱為 Java 虛擬機的虛擬機生成代碼。
首先,Java 代碼被編譯成字節碼。這個字節碼在不同的機器上被解釋
在主機系統和 Java 源代碼之間,字節碼是一種中介語言。
Java中的JVM負責分配內存空間。
現在在這個 JVM 教程中,讓我們了解 JVM 的體系結構。Java中的JVM架構包含類加載器、內存區域、執行引擎等。
1.類加載器
類加載器是用于加載類文件的子系統。它執行三個主要功能,即。加載、鏈接和初始化。
2.方法區
JVM 方法區存儲類結構,如元數據、常量運行時池和方法代碼。
3.堆
所有的Objects及其相關的實例變量和數組都存儲在堆中。該內存是通用的,并且在多個線程之間共享。
4.JVM語言棧
Java 語言堆棧存儲局部變量,它是部分結果。每個線程都有自己的 JVM 堆棧,在創建線程時同時創建。每當調用方法時都會創建一個新框架,并在方法調用過程完成時將其刪除。
5.PC 寄存器
PC寄存器存儲當前正在執行的Java虛擬機指令的地址。在 Java 中,每個線程都有其單獨的 PC 寄存器。
6.原生方法棧
本機方法棧保存本機代碼的指令依賴于本機庫。它是用另一種語言而不是 Java 編寫的。
7.執行引擎
它是一種用于測試硬件、軟件或完整系統的軟件。測試執行引擎從不攜帶任何關于被測產品的信息。
8.原生方法接口
本機方法接口是一個編程框架。它允許在 JVM 中運行的 Java 代碼被庫和本機應用程序調用。
9.原生方法庫
本機庫是執行引擎所需的本機庫(C、C++)的集合。
為了編寫和執行軟件程序,您需要以下內容
1.編輯器 ——要輸入你的程序,可以使用記事本
2.編譯器 - 將您的高級語言程序轉換為本機機器代碼
3.鏈接器 ——將主程序中不同的程序文件引用組合在一起。
4.加載器 ——將文件從您的輔助存儲設備(如硬盤、閃存驅動器、CD)加載到 RAM 中以供執行。執行代碼時會自動完成加載。
5.執行– 由您的操作系統和處理器處理的代碼的實際執行。
在此背景下,請參考以下視頻并了解 JVM(Java 虛擬機)的 JVM 內部工作和架構。
現在在這個 JVM 教程中,讓我們看看 JAVA 的過程。在你的主要,你有兩個方法 f1 和 f2。
main方法存放在文件a1.java中
f1 作為 a2.java 存儲在文件中
f2 作為 a3.java 存儲在文件中
編譯器將編譯這三個文件并生成 3 個對應的由 BYTE 代碼組成的 .class 文件。 與 C 不同,沒有進行鏈接。
Java VM 或 Java 虛擬機駐留在 RAM 上。在執行期間,使用類加載器將類文件帶到 RAM 中。BYTE 代碼已針對任何安全漏洞進行驗證。
接下來,執行引擎會將 Bytecode 轉換為 Native 機器碼。這是及時編譯。這是Java相對較慢的主要原因之一。
注意: JIT或即時編譯器是 Java 虛擬機 (JVM) 的一部分。它同時解釋具有相似功能的部分字節碼。如果大家對此比較感興趣,想了解更多相關知識,不妨來關注一下本站的Java視頻教程,里面的課程內容細致全面,通俗易懂,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習