JVM, JDK, JRE和OpenJDK之间的区别是什么?

我在用Java编程时遇到了这些短语,它们之间有什么区别?


当前回答

JDK——像javac这样的工具用于将*.java文件编译为*.class字节码文件(主要用于开发Java程序)

JRE -运行*.jar文件的工具(基本上运行Java程序)

JVM -将*.class文件编译为可执行机器代码的工具(运行所有Java字节码)

OpenJDK只是Java JDK的一个发行版。

其他回答

通俗来说:JDK = JRE +开发/调试工具,其中JDK是我们与Java一起工作的完整包,从创建编译到运行它。另一方面,JRE只是代码(字节码)的运行。

注意:-无论我们是安装JDK还是JRE, JVM都会与这两个包捆绑在一起,JVM是JIT编译器将字节代码转换为机器特定代码的部分。

只需阅读关于JDK、JRE、JVM和JIT的文章即可

JDK -将java编译为字节码。由调试器,编译器等组成。

javac file.java // Is executed using JDK

JVM——执行字节代码。JVM使java平台独立。但是JVM因平台而异。

JRE - JVM与java运行时库一起执行java程序。

JVM:描述运行java程序的方式/资源的规范。实际执行字节代码,使java平台独立。在这个过程中,不同的平台是不同的。windows的JVM不能像UNIX的JVM那样工作。

JRE: JVM的实现。(JVM +运行时库)

JDK: JRE + java编译器等基本工具,从零开始构建java程序

JVM是Java虚拟机-它实际上运行Java字节码。

JRE是Java运行时环境——其中包含JVM,并且是运行Java程序所需要的。

JDK是Java开发工具包——它是JRE,但添加了javac(这是编译Java源代码所需的工具)和其他编程工具。

OpenJDK是一个特定的JDK实现。

简单的图片来说明JDK、JRE、JDK。

JDK一般来说,它只会安装在开发环境中,比如在开发人员中,在公司的实时QA系统中。在服务器上运行的原始代码将没有JDK。

JRE是JDK的一部分,也可以独立安装在服务器上。在处理用户请求的实时服务器中,只安装JRE和开发人员开发的代码(*.class格式)

JVM Developer开发的代码>在开发机器上测试和执行。执行阶段需要Java的媒介。

.class文件不是本地代码(cpu能理解的代码)。如果.java文件直接转换为本机代码,则无法实现WORA(一次编写,随处运行)的概念。

本机代码因操作系统而异。所以,Java创建了一个叫做。class的中间文件和一个叫做“JVM”的神奇程序。将.class转换为本机代码是JVM的职责。