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

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


当前回答

JVM:这实际上意味着字节码解释器。它依赖于平台。例如:在Windows平台上,'java.exe'或'javaw.exe'进程是jvm进程。

JDK:是一个包含开发和执行java程序/应用程序所必需的库和实用程序的工具包

JRE: java应用程序的执行环境。即,它只支持运行时依赖,包括JVM编译程序。如果我们想编译一个java程序,我们需要jdk。

其他回答

JVM

JVM (Java虚拟机)是一种抽象机器。它是一个提供运行时环境的规范,在该环境中可以执行java字节码。 jvm可用于许多硬件和软件平台。

JRE

JRE是Java运行时环境的首字母缩写。它用于提供运行时环境。它是JVM的实现。它是物理存在的。它包含一组库+ JVM在运行时使用的其他文件。

JDK

JDK是Java Development Kit的首字母缩写。它是物理存在的。它包含JRE +开发工具。

链接:- http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

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

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

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

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

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

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

JDK (Java Development Kit)

Java开发工具包包含开发Java程序所需的工具,以及运行程序所需的JRE。工具包括编译器(javac.exe), Java应用程序启动器(Java .exe), Appletviewer等。

编译器将java代码转换为字节代码。Java应用程序启动器打开JRE,加载类,并调用它的主方法。

如果您想编写自己的程序并编译它们,则需要JDK。对于运行java程序,JRE是足够的。

JRE的目标是执行Java文件

即JRE = JVM + Java包类(如util, math, lang, awt,swing等)+运行时库。

JDK主要针对java开发。也就是说,你可以创建一个Java文件(借助于Java包),编译一个Java文件并运行一个Java文件。

JRE (Java Runtime Environment)

Java运行时环境包含JVM、类库和其他支持文件。它不包含任何开发工具,如编译器、调试器等。实际上,JVM运行程序,它使用JRE中提供的类库和其他支持文件。如果你想运行任何java程序,你需要在系统中安装JRE

Java虚拟机提供了一种独立于平台的代码执行方式; 这意味着在任何机器上编译一次,并在任何位置(任何机器)运行它。

JVM (Java虚拟机)

正如我们都知道的,当我们编译一个Java文件时,输出不是一个“exe”,而是一个“。class”文件。' .class '文件由JVM可以理解的Java字节代码组成。Java虚拟机根据底层操作系统和硬件组合将字节码解释为机器代码。它负责所有的事情,比如垃圾收集、数组边界检查等等……JVM依赖于平台。

JVM之所以被称为“虚拟的”,是因为它提供了一个不依赖于底层操作系统和机器硬件体系结构的机器接口。这种独立于硬件和操作系统的特性是Java程序“一次编写、随处运行”价值的基石。

有不同的JVM实现。它们可能在性能、可靠性、速度等方面有所不同。这些实现的不同之处在于Java规范没有提到如何实现这些功能,比如垃圾收集过程的工作方式是依赖于JVM的,Java规范没有定义任何具体的方法来做到这一点。

JDK (Java Development Kit):

包含开发Java程序所需的工具。 如果您想编写自己的程序并编译它们,则需要JDK。 JDK主要针对java开发。

JRE (Java Runtime Environment)

Java运行时环境包含JVM、类库和其他支持文件。 JRE的目标是执行Java文件。

JVM (Java虚拟机)

JVM根据底层操作系统和硬件组合将字节码解释为机器码。它负责所有的事情,比如垃圾收集、数组边界检查等等……Java虚拟机提供了一种平台独立的代码执行方式。

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

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

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

OpenJDK是一个特定的JDK实现。