Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JVM和JRE之间的差异_Java_Compiler Construction_Jvm - Fatal编程技术网

Java JVM和JRE之间的差异

Java JVM和JRE之间的差异,java,compiler-construction,jvm,Java,Compiler Construction,Jvm,我最近开始学习JAVA。我的老师告诉我,JVM的名字是虚拟的,它基本上不像物理上或软件(或你们说的任何东西)那样存在。在他看来,JVM只是为不同平台开发JRE的规范文档。JRE是JVM的真正实现,它完成了运行字节码等所有工作 我自己做了一些搜索,但在任何地方都没有找到同样的东西。相反,很多人说JVM用于运行字节码,JRE提供运行时。这很不令人满意 所以我想知道JVM和JRE之间的区别是什么。如果有来自oracle或sun microsystem的真实文档。然后提供链接你查过维基百科了吗? @见图

我最近开始学习JAVA。我的老师告诉我,JVM的名字是
虚拟的
,它基本上不像物理上或软件(或你们说的任何东西)那样存在。在他看来,JVM只是为不同平台开发JRE的规范文档。JRE是JVM的真正实现,它完成了运行字节码等所有工作

我自己做了一些搜索,但在任何地方都没有找到同样的东西。相反,很多人说JVM用于运行字节码,JRE提供运行时。这很不令人满意

所以我想知道JVM和JRE之间的区别是什么。如果有来自oracle或sun microsystem的真实文档。然后提供链接你查过维基百科了吗? @见图。 Java API和JVM共同构成了Java运行时环境(JRE)。

您查看过wikipedia吗? @见图。
Java API和JVM共同构成了Java运行时环境(JRE)。

在发布这些类型的问题之前,先学习搜索。谷歌在很多方面都很有用:P

虚拟机 Java虚拟机(JVM)是运行Java字节码的虚拟机。JVM不理解Java打字错误,这就是为什么要编译*.Java文件以获得包含JVM可以理解的字节码的*.class文件。它也是允许Java成为“可移植语言”(编写一次,在任何地方运行)的实体。事实上,JVM在不同的系统(Windows、Linux、MacOS,请参阅wikipedia列表…)中有特定的实现,其目的是使用相同的字节码,它们都会给出相同的结果

JDK和JRE

要解释JDK和JRE之间的区别,最好阅读Oracle文档并参考图表:

Java运行时环境(JRE)Java运行时环境(JRE)提供用于运行用Java编程语言编写的小程序和应用程序的库、Java虚拟机和其他组件。此外,两项关键部署技术是JRE的一部分:Java插件,它使小程序能够在流行浏览器中运行;以及JavaWebStart,它通过网络部署独立的应用程序。它也是java 2平台、企业版(J2EE)技术在企业软件开发和部署中的基础。JRE不包含用于开发小程序和应用程序的工具和实用程序,如编译器或调试器

Java开发工具包(JDK)JDK是JRE的超集,包含JRE中的所有内容,以及开发小程序和应用程序所需的编译器和调试器等工具


在发布这些类型的问题之前,学习搜索。谷歌在很多方面都很有用:P

虚拟机 Java虚拟机(JVM)是运行Java字节码的虚拟机。JVM不理解Java打字错误,这就是为什么要编译*.Java文件以获得包含JVM可以理解的字节码的*.class文件。它也是允许Java成为“可移植语言”(编写一次,在任何地方运行)的实体。事实上,JVM在不同的系统(Windows、Linux、MacOS,请参阅wikipedia列表…)中有特定的实现,其目的是使用相同的字节码,它们都会给出相同的结果

JDK和JRE

要解释JDK和JRE之间的区别,最好阅读Oracle文档并参考图表:

Java运行时环境(JRE)Java运行时环境(JRE)提供用于运行用Java编程语言编写的小程序和应用程序的库、Java虚拟机和其他组件。此外,两项关键部署技术是JRE的一部分:Java插件,它使小程序能够在流行浏览器中运行;以及JavaWebStart,它通过网络部署独立的应用程序。它也是java 2平台、企业版(J2EE)技术在企业软件开发和部署中的基础。JRE不包含用于开发小程序和应用程序的工具和实用程序,如编译器或调试器

Java开发工具包(JDK)JDK是JRE的超集,包含JRE中的所有内容,以及开发小程序和应用程序所需的编译器和调试器等工具


您所说的JVM只是规范文档或要运行的指令集。类文件格式我要说的是JVM本身就是一个规范(它还包括可用指令集的规范),不同供应商提供了几种实现,比如Oracle的一种,然后-“每个特定的主机操作系统都需要供应商自己实现JVM“,因此即使对于Oracle JVM,每个操作系统也需要不同的实现。是的,我也认为JVM是一种规范&JRE是JVM的真正实现。那么说JVM运行字节码是否正确呢。虽然我们知道这只是一个规范,不同的供应商可以编写他们版本的JRE“JVM运行字节码”,JRE运行字节码(这就是为什么它是运行时环境),规范不能运行任何东西=),但是人们通常在说“JVM”时暗示JRE。谢谢。。。这消除了一些疑问。您所说的JVM只是规范文档或运行的指令集。类文件格式我会说JVM本身就是一个规范(它还包括可用指令集的规范),并且有多个来自不同供应商的实现,比如Oracle的实现,然后-“每个特定的主机操作系统都需要供应商自己实现JVM“,因此即使对于Oracle JVM,每个操作系统也需要不同的实现。是的,我也认为JVM是一种规范&JRE是JVM的真正实现。那么说JVM运行字节码是否正确呢。虽然我们知道这只是一个规范,不同的供应商可以