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

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

由圖中可以看出以下幾點(diǎn):
- JDK=JRE+多種Java開發(fā)工具
- JRE=JVM+各種類庫
- 這三者的關(guān)系是一層層的嵌套關(guān)系。JDK>JRE>JVM
到此這篇關(guān)于JVM,JRE和JDK的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)JVM,JRE和JDK內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何解決websocket開啟多個(gè)頁面訪問同一個(gè)連接會失效的問題
使用WebSocket時(shí),若多個(gè)頁面訪問同一個(gè)WebSocket連接可能會導(dǎo)致連接失效,遇到這個(gè)問題時(shí),可以通過在SpringBoot中使用@ServerEndpoint注解并添加@Component來解決,出現(xiàn)連接錯(cuò)誤通常是因?yàn)閃ebSocket連接接收到的是一個(gè)GET請求2024-09-09
編寫Spring MVC控制器的14個(gè)技巧(小結(jié))
這篇文章主要介紹了編寫Spring MVC控制器的14個(gè)技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
詳解Java對象創(chuàng)建的過程及內(nèi)存布局
今天給大家?guī)淼奈恼率荍ava對象創(chuàng)建的過程及內(nèi)存布局,文中有非常詳細(xì)的圖文示例及介紹,需要的朋友可以參考下2021-06-06
Java使用kafka發(fā)送和生產(chǎn)消息的示例
本篇文章主要介紹了Java使用kafka發(fā)送和生產(chǎn)消息的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
Maven項(xiàng)目改為spring boot項(xiàng)目的方法圖解
這篇文章主要介紹了Maven項(xiàng)目改為spring boot項(xiàng)目的方法圖解 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
Java實(shí)現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼
這篇文章主要為大家介紹了如何利用Java語言是PDF轉(zhuǎn)HTML、Word、Excel、PPT和PNG功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-05-05

