jvm它包含以下部分
第一個:類加載系統
類加載子系統,負責類的加載。類加載器有三種類型:引導類加載器、擴展類加載器、應用程序類加載器。
第二個:運行時數據區
?包含了程序計數器、Java虛擬機棧、本地方法棧、堆 、方法區。
? ? ? ? 程序計數器:記錄當前線程所執行的字節碼指令的位置,線程私有
? ? ? ? Java虛擬機棧:局部變量、操作數棧、動態連接、方法返回地址,線程私有
? ? ? ? 本地方法棧:為本地方法服務,存儲相關執行信息,線程私有
? ? ? ? 堆:存儲對象實例和數組,所有線程共享
? ? ? ? 方法區:存放常量、靜態變量、類的信息,所有線程共享
第三個:執行引擎
執行引擎負責將JVM加載的字節碼轉換為機器指令執行,支持跨平臺兼容性。包含了解釋器、即時編譯器、垃圾回收器
第四個:本地接口
本地接口是Java虛擬機與本地代碼交互的橋梁,允許Java調用C/C++等編寫的本地方法,用于性能優化或底層系統交互。訪問底層操作系統API、調用硬件驅動、集成遺留系統代碼庫等場景中使用。
第五個:元空間 (JDK8及之后的版本)
? ? ? ? jdk8引入的概念,它是用來存儲類的元數據的區域,取代了之前的永久代(PermGen)。
下面是整理的腦圖