JDK 和 JRE 是 Java 編程中的核心概念,它們的差異是一些最流行的麵試問題。我們在編程時不會使用這些概念,但如果我們想成為一名 Java 開發人員,我們必須了解這些概念。
JDK
JDK 代表 Java 開發工具包。它是一個用於開發Java應用程序和applet的軟件開發環境。它是一個特定於平台的軟件,即有適用於 Windows、Mac 和 Unix 係統的單獨安裝程序。 Java 開發人員可以在 Windows、macOS、Solaris 和 Linux 上使用它來編碼和運行 Java 程序。它包含 Java 運行時環境 (JRE) 和其他開發工具,如解釋器、編譯器、歸檔器和文檔生成器。我們可能可以在同一台計算機上安裝多個 JDK 版本。
JRE
JRE 代表 Java 運行時環境。它是JVM(Java虛擬機)的實現,專門為提供執行Java程序的環境而設計。它也像 JDK 一樣依賴於平台。它由 JVM、Java 二進製文件和其他用於程序順利執行的類組成。它不包含任何編譯器、調試器等開發工具。如果我們隻想執行一個程序,我們隻需要安裝JRE而不是JDK,因為不需要開發或編譯代碼。
讓我們借助下圖看看主要區別:
Difference Between JDK and JRE
鑰匙 | JDK | JRE |
---|---|---|
定義 | JDK(Java Development Kit)用於開發Java應用程序。 JDK還包含許多開發工具,如編譯器、調試器等。 | JRE(Java Runtime Environment)是JVM(Java Virtual Machine)的實現,它是專門為執行Java程序而設計的。 |
函數性 | 主要用於代碼的執行,主要函數是開發。 | 主要用於創建代碼執行環境。 |
平台依賴性 | 它依賴於平台。 | 它也像 JDK 一樣依賴於平台。 |
工具類型 | 由於JDK負責開發目的,因此它包含開發和調試目的所需的工具。 | 另一方麵,JRE不負責開發目的,因此它不包含編譯器、調試器等工具。相反,它包含程序執行所需的類庫和支持文件。 |
JDK和JRE的實現 | JDK=JRE+其他開發工具。 | JRE=JVM+其他類庫。 |
相關用法
- Java Java.io.BufferedInputStream.available()用法及代碼示例
- Java Java.io.BufferedInputStream.close()用法及代碼示例
- Java Java.io.BufferedInputStream.read()用法及代碼示例
- Java Java.io.BufferedInputStream.reset()用法及代碼示例
- Java Java.io.BufferedInputStream.skip()用法及代碼示例
- Java Java.io.BufferedOutputStream.flush()用法及代碼示例
- Java Java.io.BufferedOutputStream.Write()用法及代碼示例
- Java Java.io.BufferedReader.Close()用法及代碼示例
- Java Java.io.BufferedReader.mark()用法及代碼示例
- Java Java.io.BufferedReader.markSupported()用法及代碼示例
- Java Java.io.BufferedReader.read()用法及代碼示例
- Java Java.io.BufferedReader.readline()用法及代碼示例
- Java Java.io.BufferedReader.ready()用法及代碼示例
- Java Java.io.BufferedReader.reset()用法及代碼示例
- Java Java.io.BufferedReader.skip()用法及代碼示例
- Java Java.io.BufferedWriter.close()用法及代碼示例
- Java Java.io.BufferedWriter.flush()用法及代碼示例
- Java Java.io.BufferedWriter.newLine()用法及代碼示例
- Java Java.io.BufferedWriter.write()用法及代碼示例
- Java Java.io.ByteArrayInputStream.available()用法及代碼示例
- Java Java.io.ByteArrayInputStream.close()用法及代碼示例
- Java Java.io.ByteArrayInputStream.mark()用法及代碼示例
- Java Java.io.ByteArrayInputStream.read()用法及代碼示例
- Java Java.io.ByteArrayInputStream.reset()用法及代碼示例
注:本文由純淨天空篩選整理自mishrapratikshya12大神的英文原創作品 Difference Between JDK and JRE in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。