?JVM、JRE和JDK是與Java開發(fā)和運(yùn)行相關(guān)的三個重要概念。?
?再了解三者之前讓我們先來了解下java源文件的執(zhí)行順序:?
- 使用編輯器或IDE(集成開發(fā)環(huán)境)編寫Java源文件.即demo.java
- 程序必須編譯為字節(jié)碼文件,javac(Java編譯器)編譯源文件為demo.class文件.
- 類文件可在任何平臺/操作系統(tǒng)上由JVM(Java虛擬機(jī))執(zhí)行(能一次編譯,到處運(yùn)行就是因?yàn)镴VM)。
- JVM將字節(jié)碼文件翻譯為機(jī)器可以執(zhí)行的機(jī)器碼(0,1二進(jìn)制)。
一、JVM
????????JVM(Java Virtual Machine,Java虛擬機(jī)): JVM是Java程序運(yùn)行的環(huán)境,它是Java平臺的核心組成部分。它負(fù)責(zé)解釋并執(zhí)行Java字節(jié)碼(由Java源代碼編譯而成),提供了對硬件和操作系統(tǒng)的抽象,使得Java程序可以在不同的系統(tǒng)上運(yùn)行。JVM還提供了垃圾回收、內(nèi)存管理、安全性等功能,以確保Java程序的可靠性和安全性。JVM之所以稱為虛擬機(jī),是因?yàn)樗峁┝艘粋€不依賴于底層操作系統(tǒng)和機(jī)器硬件體系結(jié)構(gòu)的機(jī)器接口,在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機(jī)器指令執(zhí)行。所以java可以一次編寫到處運(yùn)行。
二、JRE(運(yùn)行環(huán)境)
????????JRE(Java Runtime Environment,Java運(yùn)行時環(huán)境): JRE是Java應(yīng)用程序的運(yùn)行時環(huán)境,它包含了JVM以及Java基礎(chǔ)類庫和所需的運(yùn)行時資源。光有JVM還不能成class的執(zhí)行,因?yàn)樵诮忉宑lass的時候JVM需要調(diào)用解釋所需要的類庫lib。JRE提供了Java程序運(yùn)行所需的一切,包括類加載、字節(jié)碼解釋、垃圾回收等功能。如果只需要運(yùn)行Java應(yīng)用程序而不需要進(jìn)行開發(fā),只需安裝JRE即可。
三、JDK(開發(fā)環(huán)境)
????????JDK(Java Development Kit,Java開發(fā)工具包): JDK是用于開發(fā)Java應(yīng)用程序的工具包,它包含了JRE以及編譯器、調(diào)試器、開發(fā)工具和其他一些輔助工具。JDK提供了開發(fā)Java應(yīng)用程序所需的一切,包括編譯、調(diào)試、文檔生成、性能分析等工具。如果需要進(jìn)行Java應(yīng)用程序的開發(fā),需要安裝JDK。
區(qū)別:
- JVM是Java程序運(yùn)行的虛擬機(jī),提供了對字節(jié)碼的解釋和執(zhí)行。
- JRE是Java應(yīng)用程序的運(yùn)行時環(huán)境,包含了JVM和運(yùn)行時所需的類庫等資源。
- JDK是用于開發(fā)Java應(yīng)用程序的工具包,包含了JRE以及開發(fā)工具、編譯器等。
簡而言之,JVM負(fù)責(zé)運(yùn)行Java程序,JRE提供運(yùn)行Java程序所需的一切,而JDK是開發(fā)Java程序所需的工具包。
JVM<JRE<JDK。文章來源:http://www.zghlxwxcb.cn/news/detail-640174.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-640174.html
到了這里,關(guān)于JVM、JRE、JDK三者之間的關(guān)系的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!