你知道JDK、JRE與JVM的區(qū)別嗎?我來(lái)告訴你
什么是 JDK?
JDK 的英文全稱(chēng)是 Java Development Kit。JDK是用于制作程序和Java應(yīng)用程序的軟件開(kāi)發(fā)環(huán)境。Java 開(kāi)發(fā)人員可以在 Windows、macOS、Solaris 和 Linux 上使用,是一個(gè)跨平臺(tái)編程語(yǔ)言。JDK 幫助他們編寫(xiě)和運(yùn)行 Java 程序??梢栽谕慌_(tái)計(jì)算機(jī)上安裝多個(gè) JDK 版本。
什么是 JRE?
JRE 的英文全稱(chēng)是 Java Runtime Environment。JRE 是一個(gè)旨在運(yùn)行其他軟件的軟件(有點(diǎn)繞口)。它包含類(lèi)庫(kù)、加載器類(lèi)和 JVM。簡(jiǎn)單來(lái)說(shuō),如果你想運(yùn)行 Java 程序,你需要 JRE。如果您不是程序員,則無(wú)需安裝 JDK,只需安裝 JRE 即可運(yùn)行 Java 程序。不過(guò),所有 JDK 版本都與 Java Runtime Environment 捆綁在一起,因此無(wú)需在 PC 單獨(dú)下載和安裝 JRE。JRE 的完整形式是 Java 運(yùn)行時(shí)環(huán)境。
什么是JVM?
JVM 的英文全稱(chēng)是Java Virtual Machine。JVM 是一個(gè)引擎,它提供運(yùn)行時(shí)環(huán)境驅(qū)動(dòng) Java 代碼或應(yīng)用程序。它將 Java 字節(jié)碼轉(zhuǎn)換為機(jī)器語(yǔ)言。JVM 是 Java 運(yùn)行環(huán)境 (JRE) 的一部分。它不能單獨(dú)下載和安裝。要安裝 JVM,您需要安裝 JRE。JVM的就是Java虛擬機(jī)。
在許多其他編程語(yǔ)言中,編譯器為特定系統(tǒng)生成機(jī)器代碼。但是,Java 編譯器則稱(chēng)為 JVM 虛擬機(jī)生成代碼。
主要區(qū)別
- JDK是一個(gè)軟件開(kāi)發(fā)工具包,而JRE是一個(gè)允許Java程序運(yùn)行的軟件包,JVM則是一個(gè)執(zhí)行字節(jié)碼的環(huán)境。
- JDK的全稱(chēng)是Java Development Kit,JRE的全稱(chēng)是Java Runtime Environment,而JVM的全稱(chēng)是Java Virtual Machine。
- JDK 是平臺(tái)相關(guān)的,JRE 也是平臺(tái)相關(guān)的,但是 JVM 不是平臺(tái)相關(guān)的。
- JDK 包含開(kāi)發(fā)、調(diào)試等工具。JRE 包含類(lèi)庫(kù)和其他支持文件,而軟件開(kāi)發(fā)工具不包含在 JVM 中。
- JDK 附帶安裝程序,另一方面,JRE 僅包含執(zhí)行源代碼的環(huán)境,而 JVM 捆綁在軟件 JDK 和 JRE 中。
為什么要使用 JDK?
以下是使用JDK的重要原因:
- JDK 包含編寫(xiě) Java 程序所需的工具,以及執(zhí)行它們的 JRE。
- 它包括編譯器、Java 應(yīng)用程序啟動(dòng)器、Appletviewer 等。
- 編譯器將用 Java 編寫(xiě)的代碼轉(zhuǎn)換為字節(jié)碼。
- Java 應(yīng)用程序打開(kāi)一個(gè) JRE,加載必要的類(lèi),并執(zhí)行它的 main 方法。
為什么要使用 JRE?
以下是使用 JRE 的重要原因:
- JRE 包含類(lèi)庫(kù)、JVM 和其他支持文件。它不包含任何用于 Java 開(kāi)發(fā)的工具,如調(diào)試器、編譯器等。
- 它使用重要的包和類(lèi),如 math、swingetc、util、lang、awt 和運(yùn)行時(shí)庫(kù)。
- 如果您必須運(yùn)行 Java 程序,就必須在您的系統(tǒng)中安裝 JRE。
為什么選擇JVM?
以下是使用 JVM 的重要原因:
- JVM 提供了一種獨(dú)立于平臺(tái)的方式來(lái)執(zhí)行 Java 源代碼。
- 它有許多庫(kù)、工具和框架。
- 一旦你運(yùn)行 Java 程序,你就可以在任何平臺(tái)上運(yùn)行并節(jié)省大量時(shí)間。
- JVM 帶有 JIT(Just-in-Time)編譯器,可將 Java 源代碼轉(zhuǎn)換為機(jī)器語(yǔ)言。因此,它比常規(guī)應(yīng)用程序運(yùn)行得更快。
JDK的特點(diǎn)
以下是 JDK的重要特性:
- 它使您能夠在單個(gè) catch 塊中處理多個(gè)擴(kuò)展。
- JDK 包含了 JRE 的所有特性。
- 它包含開(kāi)發(fā)工具,例如編譯器、調(diào)試器等。
- JDK 提供了開(kāi)發(fā)和執(zhí)行 Java 源代碼的環(huán)境。
- 它可以安裝在 Windows、Unix 和 Mac 操作系統(tǒng)上。
- 菱形運(yùn)算符可用于指定泛型類(lèi)型接口,而不是編寫(xiě)確切的類(lèi)型接口。
JRE的特點(diǎn)
以下是 JRE 的重要特性:
- Java 運(yùn)行時(shí)環(huán)境是 JVM 實(shí)際運(yùn)行所使用的一組工具。
- JRE 包含部署技術(shù),包括 Java Web Start 和 Java Plug-in。
- 開(kāi)發(fā)人員可以輕松地在 JRE 中運(yùn)行源代碼,但不能編寫(xiě)和編譯 Java 程序。
- 它包括集成庫(kù),如 Java 數(shù)據(jù)庫(kù)連接 (JDBC)、遠(yuǎn)程方法調(diào)用 (RMI)、Java 命名和目錄接口 (JNDI) 等。
- JRE 有 JVM 和 Java HotSpot 虛擬機(jī)客戶(hù)端。
JVM的特點(diǎn)
以下是 JVM 的重要特性:
- 它使您能夠在云環(huán)境或設(shè)備中運(yùn)行應(yīng)用程序。
- Java 虛擬機(jī)將字節(jié)碼轉(zhuǎn)換為特定于機(jī)器的代碼。
- 它提供了基本的 Java 功能,如內(nèi)存管理、安全性、垃圾收集等。
- JVM 通過(guò)使用 Java Runtime Environment 提供的庫(kù)和文件來(lái)運(yùn)行程序。
- JDK 和 JRE 都包含 Java 虛擬機(jī)。
- 它可以逐行執(zhí)行java程序,因此也稱(chēng)為解釋器。
- JVM 易于定制,例如,您可以為其分配最小和最大內(nèi)存。
- 它獨(dú)立于硬件和操作系統(tǒng)。因此,您可以編寫(xiě)一次 java 程序并在任何地方運(yùn)行。