更新時間:2022-02-24 16:54:57 來源:動力節(jié)點 瀏覽2839次
Java虛擬機或JVM是Java運行時系統(tǒng)。它是一個有助于驅動Java代碼的虛擬機環(huán)境。與其他編程語言不同,每當我們編譯Java程序時,它永遠不會生成機器碼。盡管如此,Java編譯器會為Java虛擬機生成字節(jié)碼。

JVM允許我們同時解決可移植性和安全性問題:
在計算機編程中,平臺一詞代表程序運行的環(huán)境。平臺無關僅僅意味著程序可以在不同平臺上輕松執(zhí)行,而無需重寫和重新編譯。這僅是可能的。因為將Java程序轉換為字節(jié)碼可以更容易地在不同環(huán)境中執(zhí)行程序,因為每個平臺只需要實現(xiàn)JVM。
盡管JVM會因平臺而異,但它們可以理解相同的Java字節(jié)碼。這使得Java成為一種獨立于平臺的技術,也證明了WORA(Write Once Run Anywhere)的合理性。
JVM在安全方面扮演著重要的角色。JVM正在執(zhí)行的Java程序也有助于使其安全,因為JVM負責執(zhí)行環(huán)境,它可以包含程序并防止出現(xiàn)系統(tǒng)外部的問題。這是因為字節(jié)碼已經(jīng)過高度優(yōu)化,字節(jié)碼可以讓JVM更快地運行程序。JVM還會驗證字節(jié)碼,以確保程序的進一步安全運行。
Java虛擬機或JVM的內部架構包括:

類加載器在運行時初始化類文件。它動態(tài)加載類并讀取.Class文件并保存在方法區(qū)域中創(chuàng)建的字節(jié)碼。它的三個主要功能是加載、鏈接和初始化。類加載器主要分為三種類型:
每個JVM都有一個方法區(qū)。方法區(qū)存儲所有類級別的數(shù)據(jù),如類名、方法、靜態(tài)變量、非靜態(tài)變量、字段等。
堆區(qū)默認存放對象數(shù)據(jù)和對應的實例變量。
將為每個單獨的線程創(chuàng)建一個單獨的運行時堆棧。創(chuàng)建的每個堆棧塊稱為堆棧幀,用于存儲相應的局部變量。線程被銷毀后,堆棧由JVM自動終止。
將為每個線程創(chuàng)建一個單獨的PC寄存器。它保存當前執(zhí)行數(shù)據(jù)的數(shù)據(jù)。一旦執(zhí)行停止,PC寄存器將自動更新到下一部分。
包含我們程序中使用的所有本機方法。
執(zhí)行引擎逐行執(zhí)行字節(jié)碼。它包含三個主要組件:
Java Native Interface(JNI)是一個框架,它提供了一個接口來與本地方法庫交互并調用用C、C++、Assembly等語言編寫的應用程序。
以上就是動力節(jié)點小編介紹的"所有關于Java虛擬機學習的掌握",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務。