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

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


当前回答

JVM is abbreviated as Java Virtual Machine, JVM is the main component of java architecture. JVM is written in C programming language. Java compiler produce the byte code for JVM. JVM reading the byte code verifying the byte code and linking the code with the ibrary. JRE is abbreviated as Java Runtime Environment. it is provide environment at runtime. It is physically exist. It contain JVM + set of libraries(jar) +other files. JDK is abbreviated as Java Development Kit . it is develop java applications. And also Debugging and monitoring java applications . JDK contain JRE +development tools(javac,java)

OpenJDK是sun JDK的开源版本。Oracle JDK是Sun的官方JDK。

其他回答

JDK (Java Development Kit):

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

JRE (Java Runtime Environment)

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

JVM (Java虚拟机)

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

JRE执行应用程序,但JVM逐行读取指令,因此它是解释器。

JDK = JRE +开发工具

JRE = 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规范没有定义任何具体的方法来做到这一点。

JVM Java虚拟机,实际执行Java字节码。 它是JAVA平台上的执行块。它将字节码转换为机器代码。

JRE Java运行时环境,提供了执行Java应用程序的最低要求;它由Java虚拟机(JVM)、核心类和支持文件组成。

JDK Java开发工具包,它拥有开发应用程序软件的所有工具。它是JRE+JVM

Open JDK是Java平台的免费开源实现。

另一个值得一提的方面是:

JDK (java开发工具包)

正如名称所示,您将需要它用于开发目的。

例如:一家软件公司会在他们的计算机中安装JDK,因为他们需要开发新的软件,其中包括编译和运行他们的Java程序。

因此我们可以说JDK = JRE + JVM。

JRE (java运行时环境)

运行Java程序需要它。你不能用它来编译Java程序。

例如:一个普通的计算机用户想要运行一些在线游戏,那么他的系统中就需要JRE来运行Java程序。

java虚拟机

你可能知道它运行字节码。它使Java平台独立,因为它执行你编译Java程序后得到的.class文件,而不管你是在Windows、Mac还是Linux上编译。

开放的JDK

就像我上面说的。现在JDK是由不同的公司制作的,其中一个是开源的,免费供公众使用的是OpenJDK,而其他一些是Oracle公司的jrocit JDK或IBM JDK。

然而,对于普通用户来说,它们可能都是一样的。

结论

如果你是一个Java程序员,你的系统中需要JDK,这个包将包括JRE和JVM,但如果你是一个喜欢玩在线游戏的普通用户,那么你只需要JRE,这个包中没有JDK。

换句话说,JDK是祖父,JRE是父亲,JVM是他们的儿子。