这三个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字节码。 |
JVM、JDK、JRE和OpenJDK之间的区别是什么? 我在Java编程时遇到了这些短语,它们之间有什么不同?
我很难理解JVM(Java虚拟机)、JRE(Java运行时环境)、JDK(Java开发工具包)、JIT(即时编译器)和javac(Java编译器)之间的区别。 所有这些之间有什么好的比较和对比?
我正在尝试使用Eclipse、Java、Selenium、Cucumber和Appium测试apk文件。 在Windows环境变量中,在系统变量下,我将JAVA\u HOME的值设置为“C:\Program Files\JAVA\jdk-15.0.2”。 在Eclipse中,我在运行配置中使用了最新的JDK 15.0.2。当我执行cucumber测试时,我得到以下错误: C: \Users\x\A
问题内容: JVM实现在哪些方面有所不同(许可除外)?每个JVM是否都为通用处理实现类型清除? 之间的区别在哪里: JRockit IBM JVM SUN JVM Open JDK power failure Kaffi .....处理其中之一的尾部呼叫优化吗? 问题答案: JVM实现在实现JIT编译,优化,垃圾回收,支持的平台,支持的Java版本等方面可以有所不同。它们都必须满足一组功能和行为,
问题内容: JVM,JDK,JRE和OpenJDK有什么区别? 我在用Java编程时遇到了这些短语,它们之间有什么区别? 问题答案: 虚拟机 在Java虚拟机(JVM)是运行Java字节代码的虚拟机。JVM不理解Java源代码;这就是为什么需要编译文件以获取包含JVM可以理解的字节码的文件的原因。它也是允许Java成为“便携式语言”的实体(编写一次,可以在任何地方运行)。实际上,对于不同的系统(W
问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。