[Java] JRE、JDK和JVM的區別

 

在Java語言的學習過程當中,配置環境時首先會接觸到JRE和JDK的概念,後面隨着瞭解的深刻,不可避免會學習到JVM。java

JRE,全稱Java Runtime Environment,也被寫成Java RTE。顧名思義,JRE提供Java應用運行所需的最小支撐環境,它包括JVM、核心類、和一些支持文件。算法

JDK,全稱Java Developent Kit,做爲Java應用和applets的軟件開發環境。它包括Java運行時環境(JRE),解釋器/加載器(Java),編譯器(javac),歸檔器(jar),文檔生成器(Javadoc)以及Java開發中所需的其餘工具。數據庫

JVM,全稱Java Virtual Machine,首先,JVM是一套工做的規範,可是實現提供者能夠獨立選擇算法;其次,JVM是一個知足JVM規範要求的計算機程序實現;最後,JVM是一個運行時實例,每當在提示符下編寫JAVA命令運行Java類時,都會建立一個JVM實例。安全

 

JDK 是提供開發和運行Java程序的環境,做爲一個工具集(包),JDK包括兩方面:服務器

1. 開發工具:提供Java程序運行的環境;網絡

2. JRE:執行Java程序。併發

Java開發人員須要使用JDK。app

 

JRE爲執行Java程序的機器提供運行環境,做爲一個安裝包,JRE僅僅被用於運行Java程序,不能用於開發。工具

 

JVM做爲JDK和JRE的重要組成,不管Java程序使用JRE仍是JDK運行,都會由JVM去一行一行地執行Java程序,JVM被做爲一個解釋器(interpreter)。學習

 

 

JRE與JDK的運行過程:

1、JRE包括:

(1)部署技術,包括部署,Java Web Start和Java Plug-in。
(2)用戶界面工具包,包括抽象窗口工具包(AWT),Swing,Java 2D,輔助功能,圖像I / O,打印服務,聲音,拖放(DnD)和輸入方法。
(3)集成庫,包括接口定義語言(IDL),Java數據庫鏈接(JDBC),Java命名和目錄接口(JNDI),遠程方法調用(RMI),Internet Inter-Orb協議上的遠程方法調用(RMI-IIOP)和腳本。
(4)其餘基礎庫,包括國際支持,輸入/輸出(I / O),擴展機制,Bean,Java管理擴展(JMX),Java本機接口(JNI),數學,網絡,覆蓋機制,安全性,序列化和Java for Java處理(XML JAXP)。
(5)Lang和util庫,包括lang和util,管理,版本控制,zip,儀器,反射,集合,併發實用程序,Java Archive(JAR),Logging,Preferences API,Ref Objects和Regular Expressions。
(6)Java虛擬機(JVM),包括Java HotSpot客戶端和服務器虛擬機。

 

 

 

類加載器(Class Loader)
類加載器加載執行程序所需的全部必要類。 它經過將本地文件系統的名稱空間與經過網絡導入的名稱空間分開來提供安全性。 這些文件能夠從硬盤,網絡或其餘來源加載。

字節碼驗證器(Byte Code Verifier)
JVM經過字節代碼驗證程序放置代碼,該代碼驗證程序檢查格式並檢查非法代碼。 例如,非法代碼是違反對象訪問權限或違反指針實現的代碼。

字節代碼驗證程序可確保代碼符合JVM規範,而且不會違反系統完整性。

 

解釋器:

在運行時,解釋器加載,檢查和運行字節代碼。 解釋器具備如下兩個功能:

執行字節代碼
對底層硬件進行適當的調用

 

 

 2、JDK和JRE之間的交互:

相關文章
相關標籤/搜索