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)文章
Thread類interrupt interrupted及isInterrupted區(qū)別
這篇文章主要為大家介紹了Thread類interrupt interrupted及isInterrupted區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Java的幾個(gè)重要版本_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
jdk8 將在2014年3月份發(fā)布,迄今為止,可能是最大更新的java版本,也是令人期待的一個(gè)版本,在Java中引入閉包概念對(duì)Java程序開(kāi)發(fā)方法的影響甚至?xí)笥贘ava5中引入的泛型特征對(duì)編程方式帶來(lái)的影響2017-06-06Spring Boot JDBC 連接數(shù)據(jù)庫(kù)示例
本篇文章主要介紹了Spring Boot JDBC 連接數(shù)據(jù)庫(kù)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02SpringBoot中定時(shí)任務(wù)的使用方法解析
這篇文章主要介紹了SpringBoot中定時(shí)任務(wù)的使用方法解析,@EnableScheduling?注解,它的作用是發(fā)現(xiàn)注解?@Scheduled的任務(wù)并由后臺(tái)執(zhí)行,沒(méi)有它的話將無(wú)法執(zhí)行定時(shí)任務(wù),需要的朋友可以參考下2024-01-01struts2 validation.xml 驗(yàn)證規(guī)則代碼解析
這篇文章主要介紹了struts2 validation.xml 驗(yàn)證規(guī)則代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01使用Java和Selenium實(shí)現(xiàn)滑塊驗(yàn)證的自動(dòng)化登錄功能
在現(xiàn)代Web應(yīng)用中,滑塊驗(yàn)證碼被廣泛用于防止自動(dòng)化腳本的濫用,滑塊驗(yàn)證通常要求用戶通過(guò)拖動(dòng)滑塊來(lái)完成驗(yàn)證,然而,在某些場(chǎng)景下,如自動(dòng)化測(cè)試或批量登錄,我們需要通過(guò)編程手段解決滑塊驗(yàn)證問(wèn)題,本文將詳細(xì)介紹如何使用Java和Selenium實(shí)現(xiàn)滑塊驗(yàn)證的自動(dòng)化登錄2025-01-01