还有一个值得提及的方面:
JDK(java开发工具包)
像其名字所示,您需要它来进行开发。
例如:软件公司会在计算机上安装JDK,因为他们需要开发新软件,这涉及到编译和运行Java程序。
因此,我们可以说JDK = JRE + JVM。
JRE(java运行环境)
这是运行Java程序所必需的。您不能使用它来编译Java程序。
例如:普通计算机用户想要运行一些在线游戏,则需要在系统中安装JRE以运行Java程序。
JVM(java虚拟机)
正如您所知道的,它运行字节码。它使Java平台独立,因为它执行编译Java程序后获取的.class
文件,无论您是在Windows、Mac还是Linux上编译它。
Open JDK
就像我上面说的。现在JDK由不同的公司制作,其中之一是开放源代码并免费供公众使用的OpenJDK,而其他一些则是Oracle Corporation的JRockit JDK或IBM JDK。
但对于一般用户来说,它们都可能看起来相同。
结论
如果您是Java程序员,则需要在系统中安装JDK,此软件包还将包括JRE和JVM,但如果您是普通用户,喜欢玩在线游戏,则只需要JRE,而此软件包不包含JDK。
换句话说,JDK是爷爷,JRE是父亲,JVM是他们的儿子。
JVM
JVM(Java虚拟机)是一种抽象的计算机,它是一个规范,为Java字节码执行提供运行时环境。JVM可用于许多硬件和软件平台。
JRE
JRE是Java运行时环境的缩写。它用于提供运行时环境,是JVM的实现。它在物理上存在,并包含JVM在运行时使用的一组库和其他文件。
JDK
JDK是Java开发工具包的缩写。它在物理上存在,并包含JRE和开发工具。
链接: http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
JVM:Java虚拟机,告诉计算机如何处理Java代码。您不能直接下载JVM,它通常作为其他组件的一部分打包提供。
JRE:上述提到的其他组件是JRE。它由JVM和其他JAR文件组成,用于创建运行时环境。
JDK:包含JRE(其中包含JVM)。一旦您获取了JDK,就不需要单独安装JRE和JVM。它还包含编译器,用于将您的.java文件编译为.class文件。
JDK 一般只在开发设置中安装,例如在企业公司的开发人员和QA系统中。在服务器上运行的原始代码不会有JDK。
JRE 是JDK的一部分,也可以独立安装在服务器上。在为用户请求提供服务的实时服务器上,只安装了JRE和由开发人员开发的代码(以*.class格式)。
JVM 开发人员开发的代码经过测试并在开发机器上执行。执行阶段需要一个Java的媒介。
.class文件不是本地代码(CPU能够理解的代码)。如果将.java文件直接转换为本地代码,则无法实现WORA(编写一次,在任何地方运行)的概念。
本地代码因操作系统而异。因此,Java创建了一个名为.class的中间文件和一个神奇的程序,称为"JVM"。它是JVM的职责将.class转换为本地代码。
JVM:JVM代表字节码解释器,它是平台相关的。例如,在Windows平台上,“java.exe”或“javaw.exe”进程就是jvm进程。
JDK:是一个包含必要库和工具来开发和执行Java程序/应用程序的工具包。
JRE:是Java应用程序的执行环境,它仅支持运行时依赖项,包括编译后的程序所需的JVM。如果我们想编译Java程序,则需要JDK。
简而言之:
如果你想开发Java程序,你需要JDK,但如果你只是想运行Java程序,你只需要JRE。
JVM Java虚拟机,实际上是执行Java字节码的执行块。它是JAVA平台上的执行块,将字节码转换为机器码。
JRE Java运行时环境,提供了执行Java应用程序的最低要求;它由Java虚拟机(JVM)、核心类和支持文件组成。
JDK Java开发工具包,它拥有开发应用软件所需的所有工具。它相当于JRE+JVM。
Open JDK 是Java平台的免费开源实现。
JRE 执行应用程序,但 JVM 逐行读取指令,因此它是解释器。
JDK=JRE+开发工具
JRE=JVM+库类
JVM的全称是Java虚拟机,JVM是Java架构的主要组成部分。JVM是用C编程语言编写的。Java编译器为JVM生成字节码。JVM读取字节码,验证字节码,并将代码与库链接起来。
JRE的全称是Java运行时环境。它在运行时提供环境。它是实际存在的。它包含JVM +一组库(jar) +其他文件。
JDK的全称是Java开发工具包。它用于开发Java应用程序。还可以调试和监视Java应用程序。JDK包含JRE +开发工具(javac、java)
OpenJDK是Sun JDK的开源版本。Oracle JDK是Sun官方的JDK。
JDK:编写和运行Java代码所需的完整软件包。
OpenJDK:JDK的独立实现,使其更加优化。
JVM:将Java代码转换为字节码,并提供规范,告诉如何编译、加载、验证、检查错误和执行Java代码。
JRE:JVM的实现,其中使用了一些Java库来运行程序。