大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JVM虛擬機的架構

JVM虛擬機的架構

更新時間:2021-11-19 09:47:06 來源:動力節點 瀏覽938次

JVM(Java Virtual Machine)是一個抽象的機器。它是一種提供運行時環境的規范,可以在其中執行 java 字節碼。

JVM 可用于許多硬件和軟件平臺(即 JVM 依賴于平臺)。

什么是JVM

這是:

一個規范,其中Java虛擬機的工作被指定。但是實現提供者可以獨立選擇算法。它的實現已經由 Oracle 和其他公司提供。

一個實現它的實現被稱為 JRE(Java 運行時環境)。

運行時實例每當您在命令提示符下編寫 java 命令來運行 java 類時,就會創建一個 JVM 實例。

它能做什么

JVM 執行以下操作:

加載代碼

驗證代碼

執行代碼

提供運行環境

JVM 為以下各項提供了定義:

存儲區

類文件格式

寄存器組

垃圾收集堆

致命錯誤報告等。

JVM架構

下面我們來了解一下JVM的內部架構。它包含類加載器、內存區、執行引擎等。

1.類加載器

Classloader是JVM的一個子系統,用于加載類文件。每當我們運行 java 程序時,它首先由類加載器加載。Java 中有三個內置的類加載器。

(1)Bootstrap ClassLoader:這是第一個類加載器,它是 Extension 類加載器的超類。它加載rt.jar文件,其中包含 Java 標準版的所有類文件,如 java.lang 包類、java.net 包類、java.util 包類、java.io 包類、java.sql 包類等。

(2)擴展類加載器:這是 Bootstrap 的子類加載器和系統類加載器的父類加載器。它加載位于$JAVA_HOME/jre/lib/ext目錄中的 jar 文件。

(3)System/Application ClassLoader:這是擴展類加載器的子類加載器。它從類路徑加載類文件。默認情況下,類路徑設置為當前目錄。您可以使用“-cp”或“-classpath”開關更改類路徑。它也稱為應用程序類加載器。

//Let's see an example to print the classloader name  
public class ClassLoaderExample  
{  
    public static void main(String[] args)  
    {  
        // Let's print the classloader name of current class.   
        //Application/System classloader will load this class  
        Class c=ClassLoaderExample.class;  
        System.out.println(c.getClassLoader());  
        //If we print the classloader name of String, it will print null because it is an  
        //in-built class which is found in rt.jar, so it is loaded by Bootstrap classloader  
        System.out.println(String.class.getClassLoader());  
    }  
}     

輸出:

sun.misc.Launcher$AppClassLoader@4e0e2f2a 
null

這些是 Java 提供的內部類加載器。如果要創建自己的類加載器,則需要擴展 ClassLoader 類。

2.類(方法)區

類(方法)區存儲每個類的結構,例如運行時常量池、字段和方法數據、方法代碼。

3.堆

它是分配對象的運行時數據區。

4.堆棧

Java Stack 存儲幀。它保存局部變量和部分結果,并在方法調用和返回中起作用。

每個線程都有一個私有 JVM 堆棧,與線程同時創建。

每次調用方法時都會創建一個新框架。框架在方法調用完成時被銷毀。

5.程序計數器寄存器

PC(程序計數器)寄存器包含當前正在執行的Java虛擬機指令的地址。

6.本地方法棧

它包含應用程序中使用的所有本機方法。

7.執行引擎

它包含了:

虛擬處理器

解釋器:讀取字節碼流然后執行指令。

即時(JIT)編譯器:用于提高性能。JIT 同時編譯具有相似功能的部分字節碼,從而減少編譯所需的時間。這里,術語“編譯器”是指從 Java 虛擬機 (JVM) 的指令集到特定 CPU 的指令集的翻譯器。

8.Java 本地接口

Java Native Interface (JNI) 是一個框架,它提供了一個接口來與用另一種語言(如 C、C++、Assembly 等)編寫的另一個應用程序進行通信。Java 使用 JNI 框架將輸出發送到控制臺或與操作系統庫交互。

通過上述相信大家對JVM虛擬機的架構已經有所了解,若想了解更多相關知識,不妨來關注一下動力節點的Java虛擬機視頻,里面有更多的知識在等著大家去學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 嘿咻成人免费视频欧美激情 | 久久伊人在 | 精品 日韩 国产 欧美在线观看 | 欧美国产成人在线 | 国产国产人免费观看在线视频 | 亚洲爱婷婷色婷婷五月 | 老色鬼久久综合第一 | 日本一级特黄毛片免费视频9 | 九九久久久久久久爱 | 日本三级一区 | 红色一级毛片 | 国产福利影院 | 男人天堂黄色 | 四虎最新永久免费网址 | 四虎免费影院4hu永久免费 | 婷婷99精品国产97久久综合 | 国产精品日韩欧美在线第3页 | 精品国产一二三区 | 成人爱爱爱欧美日本视频 | 亚洲精品麻豆 | 狠狠色狠狠色综合日日32 | 国产精品久久免费 | 综合精品 | 九九草在线观看 | 深夜在线免费观看 | 呦呦精品| 久久午夜激情 | 欧美成人观看视频在线 | 欧美日韩成人在线观看 | 一区二区三区中文国产亚洲 | 亚洲国产另类久久久精品小说 | 狠狠操大逼 | 亚洲综合久久久久久888 | 精品亚洲一区二区在线播放 | 欧美另类jizzhd | 日韩aaa| 澳门四虎影院 | 美女黄频免费观看 | 亚洲视频在线观看 | 精品成人一区二区三区免费视频 | 国产91精品福利在线观看 |