詳解Java中的JDK、JRE、JVM
JDK、JRE、JVM
JDK包含JRE,而JRE包含JVM
JDK(Java Development Kit)是針對(duì)Java開(kāi)發(fā)員的產(chǎn)品,是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境JRE、Java工具和Java基礎(chǔ)類庫(kù)。Java Runtime Environment(JRE)是運(yùn)行JAVA程序所必須的環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)及Java核心類庫(kù)。JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分,能夠運(yùn)行以Java語(yǔ)言寫作的軟件程序。
JDK
- JDK是Java開(kāi)發(fā)工具包,是Sun Microsystems針對(duì)Java開(kāi)發(fā)員的產(chǎn)品。
- JDK中包含JRE,在JDK的安裝目錄下有一個(gè)名為jre的目錄,里面有兩個(gè)文件夾bin和lib,在這里可以認(rèn)為bin里的就是jvm,lib中則是jvm工作所需要的類庫(kù),而jvm和 lib和>起來(lái)就稱為jre。
- JDK是整個(gè)JAVA的核心,包括了Java運(yùn)行環(huán)境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(kù)(即Java API 包括>rt.jar)。
Java Runtime Environment(JRE)
- JRE是運(yùn)行基于Java語(yǔ)言編寫的程序所不可缺少的運(yùn)行環(huán)境。也是通過(guò)它,Java的開(kāi)發(fā)者才得以將自己開(kāi)發(fā)的程序發(fā)布到用戶手中,讓用戶使用。
- JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是運(yùn)行Java程序的必要組件。
- 與JDK不同,JRE是Java運(yùn)行環(huán)境,并不是一個(gè)開(kāi)發(fā)環(huán)境,所以沒(méi)有包含任何開(kāi)發(fā)工具(如編譯器和調(diào)試器),只是針對(duì)于使用Java程序的用戶。
JVM
- JVM是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分,所有的java程序會(huì)首先被編譯為.class的類文件,這種類文件可以在虛擬機(jī)上執(zhí)行。class并不直接與機(jī)器的操作系統(tǒng)相對(duì)應(yīng),而是經(jīng)過(guò)虛擬機(jī)間接與操作系統(tǒng)交互,由虛擬機(jī)將程序解釋給本地系統(tǒng)執(zhí)行。
- 只有JVM還不能產(chǎn)生class的執(zhí)行,因?yàn)樵诮忉宑lass的時(shí)候JVM需要調(diào)用解釋所需要的類庫(kù)lib,而jre包含lib類庫(kù)。在JDK下面的的jre目錄里面有兩個(gè)文件夾bin和lib,在這里可以認(rèn)為bin里的就是jvm,lib中則是jvm工作所需要的類庫(kù),而jvm和 lib和起來(lái)就稱為jre。JVM屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案
這篇文章主要給大家介紹了關(guān)于org.apache.ibatis.binding.BindingException異常報(bào)錯(cuò)原因以及詳細(xì)解決方案的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Java源碼解析之HashMap的put、resize方法詳解
這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能實(shí)例代碼
在這里,我們使用servlet來(lái)實(shí)現(xiàn)隨機(jī)驗(yàn)證碼的實(shí)現(xiàn),有需要的朋友可以參考一下2013-08-08springboot?使用websocket技術(shù)主動(dòng)給前端發(fā)送消息的實(shí)現(xiàn)
這篇文章主要介紹了springboot?使用websocket技術(shù)主動(dòng)給前端發(fā)送消息的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12解決mybatis批量更新(update foreach)失敗的問(wèn)題
這篇文章主要介紹了解決mybatis批量更新(update foreach)失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11java時(shí)區(qū)轉(zhuǎn)換的理解及示例詳解
這篇文章主要介紹了java時(shí)區(qū)轉(zhuǎn)換的理解及示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Java操作excel的三種常見(jiàn)方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Java操作excel的三種常見(jiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04