JVM,JRE和JDK的區(qū)別小結(jié)
JVM(Java Virtual Machine,Java虛擬機(jī))
Java程序的跨平臺(tái)特性主要是指字節(jié)碼文件可以在任何具有Java虛擬機(jī)的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行,Java虛擬機(jī)中的Java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼進(jìn)行運(yùn)行。因此在運(yùn)行時(shí),Java源程序需要通過(guò)編譯器編譯成為.class文件。眾所周知java.exe是java class文件的執(zhí)行程序,但實(shí)際上java.exe程序只是一個(gè)執(zhí)行的外殼,它會(huì)裝載jvm.dll(windows下,下皆以windows平臺(tái)為例,linux下和solaris下其實(shí)類似,為:libjvm.so),這個(gè)動(dòng)態(tài)連接庫(kù)才是java虛擬機(jī)的實(shí)際操作處理所在。
JVM是JRE的一部分。 它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。JVM有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。 Java語(yǔ)言最重要的特點(diǎn)就是跨平臺(tái)運(yùn)行 。使用JVM就是為了支持與操作系統(tǒng)無(wú)關(guān),實(shí)現(xiàn)跨平臺(tái)。 所以,JAVA虛擬機(jī)JVM是屬于JRE的,而現(xiàn)在我們安裝JDK時(shí)也附帶安裝了JRE(當(dāng)然也可以單獨(dú)安裝JRE)。
JRE
Java Runtime Environment,Java運(yùn)行環(huán)境。 包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)和java核心類庫(kù),完整的Java運(yùn)行環(huán)境.
JRE目錄結(jié)構(gòu)

JRE目錄結(jié)構(gòu)
- in:Java平臺(tái)工具所使用的的.exe可執(zhí)行文件和.dll可執(zhí)行文件。
- lib:代碼庫(kù)、樹(shù)形設(shè)置以及JRE使用的源文件,如——
- rt.jar:Bootstrap類(構(gòu)成Java平臺(tái)核心API的運(yùn)行時(shí)類);
- charsets.jar:字符轉(zhuǎn)換類;
- jfxrt.jar:JavaFX的運(yùn)行時(shí)庫(kù)。
- lib\applet:包含支持類的小程序jar文件可以放置在lib/applet/目錄中。這樣,通過(guò)允許小程序類從Applet類裝載器的本地文件系統(tǒng)預(yù)裝,提供同樣的保護(hù),就好像他們已經(jīng)被下載超過(guò)凈減少啟動(dòng)時(shí)間大的小程序。
- lib\ext:Java平臺(tái)的擴(kuò)展程序(插件等)的默認(rèn)安裝目錄。如——
- localedata.jar-用于現(xiàn)場(chǎng)數(shù)據(jù) java.text和java.util。
- lib\fonts:平臺(tái)使用的字體文件。
- lib\security:包含用于安全管理的文件。這些措施包括安全策略(java.policy)和安全性(java.security)文件。
JDK
Java Development Kit,Java開(kāi)發(fā)環(huán)境。 包含了JRE、Java核心類庫(kù)、開(kāi)發(fā)工具包(編譯器+調(diào)試工具)

由圖中可以看出以下幾點(diǎn):
- JDK=JRE+多種Java開(kāi)發(fā)工具
- JRE=JVM+各種類庫(kù)
- 這三者的關(guān)系是一層層的嵌套關(guān)系。JDK>JRE>JVM
到此這篇關(guān)于JVM,JRE和JDK的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)JVM,JRE和JDK內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ElasticSearch如何設(shè)置某個(gè)字段不分詞淺析
最近在學(xué)習(xí)ElasticSearch官方文檔過(guò)程中發(fā)現(xiàn)的某個(gè)問(wèn)題,記錄一下 希望能幫助到后面的朋友,下面這篇文章主要給大家介紹了關(guān)于ElasticSearch如何設(shè)置某個(gè)字段不分詞的相關(guān)資料,需要的朋友可以參考下2022-04-04
SpringBoot基于JAXB實(shí)現(xiàn)天地圖路徑規(guī)劃結(jié)果XML轉(zhuǎn)JSON
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何基于JAXB實(shí)現(xiàn)將天地圖路徑規(guī)劃結(jié)果XML轉(zhuǎn)JSON功能,文中的示例代碼講解詳細(xì),需要的可以了解下2025-02-02
Java中的形式參數(shù)和實(shí)際參數(shù)案例詳解
這篇文章主要介紹了Java中的形式參數(shù)和實(shí)際參數(shù),形參和實(shí)參間的關(guān)系,兩者是在調(diào)用的時(shí)候進(jìn)行結(jié)合的,通常實(shí)參會(huì)將取值傳遞給形參,形參去之后進(jìn)行函數(shù)過(guò)程運(yùn)算,然后可能將某些值經(jīng)過(guò)參數(shù)或函數(shù)符號(hào)返回給調(diào)用者,需要的朋友可以參考下2023-10-10
springboot+logback的多環(huán)境配置全過(guò)程
文章介紹了Spring Boot多環(huán)境配置的兩種方式:推薦使用bootstrap.yml+環(huán)境專用文件(如bootstrap-dev.yml)區(qū)分配置,而舊版(2.6.x以下)可采用bootstrap.yml+application-xxx.yml,同時(shí)說(shuō)明Logback需將配置文件改為logback-spring.xml以支持springProperty多環(huán)境日志設(shè)置2025-09-09
使用Java編寫(xiě)控制JDBC連接、執(zhí)行及關(guān)閉的工具類
這篇文章主要介紹了如何使用Java來(lái)編寫(xiě)控制JDBC連接、執(zhí)行及關(guān)閉的程序,包括一個(gè)針對(duì)各種數(shù)據(jù)庫(kù)通用的釋放資源的工具類的寫(xiě)法,需要的朋友可以參考下2016-03-03
Java中字符串轉(zhuǎn)int數(shù)據(jù)類型的三種方式
這篇文章主要介紹了Java中字符串轉(zhuǎn)int數(shù)據(jù)類型的三種方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

