这三个JDK,JRE和JVM都是相互依赖的,并且没有共同点,因此以表格形式说明它们之间的差异并不有效,但是我们将在以下段落中进行讨论。
JVM是Java虚拟机的缩写,基本上是一种规范,它提供了一个运行时环境,可以在其中运行Java字节码,即它是抽象的东西,其实现独立于算法选择,由Sun和其他公司提供。 。是JVM,它负责将Byte代码转换为机器特定的代码。它还可以运行用其他语言编写并编译为Java字节码的程序。JVM执行上述任务:加载代码,验证代码,执行代码,提供运行时环境。
JRE是Java运行时环境,是JVM的实现,即,实现了JVM中定义的规范并创建了用于执行代码的相应环境。JRE主要包括Java二进制文件和其他类,以执行物理上存在的JVM一样的程序。JRE与Java二进制文件一起还包括各种部署技术,与执行的代码进行交互的用户界面,一些用于不同功能和语言的基本库以及基于util的库。
JDK是Java Development Kit的缩写,包括编译,调试和执行Java程序所需的所有工具,可执行文件和二进制文件.JDK依赖于平台,即Windows,Mac和Unix系统有单独的安装程序.JDK包括JVM和JRE完全负责代码执行。它是JDK的版本,代表Java的版本。
以下是JDK,JRE和JVM之间的重要区别
序号 | 键 | JDK | 杰瑞 | 虚拟机 |
---|---|---|---|---|
1个 | Definition | JDK(Java开发工具包)是一种用于使用Java开发应用程序的软件开发工具包。除了JRE,JDK还包含许多开发工具(编译器,JavaDoc,Java Debugger等)。 | JRE (Java Runtime Environment) is the implementation of JVM and is defined as a software package that provides Java class libraries, along with Java Virtual Machine (JVM), and other components to run applications written in Java programming. | JVM(Java虚拟机)是依赖于平台的抽象机,具有三个概念作为规范,描述JVM实现的要求的文档,实现,满足JVM要求的计算机程序以及实例(执行Java的实现)字节码提供了用于执行Java字节码的运行时环境。 |
2 | Prime functionality | JDK主要用于代码执行,并且具有开发的主要功能。 | On other hand JRE is majorly responsible for creating environment for code execution. | 另一方面,JVM指定所有实现,并负责将这些实现提供给JRE。 |
3 | Platform Independence | JDK依赖于平台,即对于不同的平台,需要不同的JDK。 | Like of JDK JRE is also platform dependent. | JVM是平台无关的。 |
4 | Tools | 由于JDK负责主要开发,因此它包含用于开发,调试和监视Java应用程序的工具。 | On other hand JRE does not contain tools such as compiler or debugger etc. Rather it contains class libraries and other supporting files that JVM requires to run the program. | JVM不包括软件开发工具。 |
5 | Implementation | JDK = Java运行时环境(JRE)+开发工具 | JRE = Java Virtual Machine (JVM) + Libraries to run the application | JVM =仅运行时环境,用于执行Java字节码。 |