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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。