JVM, JDK, JRE和OpenJDK之间的区别是什么?
我在用Java编程时遇到了这些短语,它们之间有什么区别?
JVM, JDK, JRE和OpenJDK之间的区别是什么?
我在用Java编程时遇到了这些短语,它们之间有什么区别?
当前回答
Java是一种语言,它包含严格的强类型语法。
Java 2平台标准版,也称为J2SE,指的是平台,并包括Java中的类。Lang和java。IO包,等等。它是构建Java应用程序的基础。
Java虚拟机(JVM)是运行已编译Java代码的软件虚拟机。因为编译后的Java代码只是字节码,JVM负责在运行字节码之前将其编译为机器码。(这通常被称为即时编译器或JIT编译器。)JVM还负责内存管理,这样应用程序代码就不必这么做了。
Java开发工具包,或称JDK,过去是,现在仍然是Java开发人员用来创建Java应用程序的软件。它包含一个Java语言编译器、一个文档生成器、用于处理本机代码的工具,以及(通常)用于平台的Java源代码,以启用调试平台类。
Java运行时环境(JRE)过去是,现在仍然是最终用户下载来运行已编译的Java应用程序的软件。它包含一个JVM,但不包含JDK中绑定的任何开发工具。但是,JDK确实包含JRE。
其他回答
Java虚拟机(JVM)是可以执行Java字节码的虚拟机。它是Java软件平台的代码执行组件。
Java开发工具包(JDK)是Oracle公司针对Java开发人员的产品。自Java引入以来,它一直是迄今为止使用最广泛的Java软件开发工具包(SDK)。
Java运行时环境,也被称为Java运行时、运行时环境
OpenJDK (Open Java Development Kit)是Java编程语言的免费开源实现。这是太阳微系统公司在2006年开始努力的结果。该实现是根据GNU通用公共许可证(GPL)许可的,有一个链接例外。
开发人员使用JDK进行开发,首先我们编写.java源代码 开发人员调试代码并将代码编译成JRE中的.class字节码可执行文件 可执行文件由JVM执行,将字节码转换为机器可以执行的本机机器码
他们的关系如下:
参考: Java JDK、JRE和JVM
JDK (Java Development Kit):
包含开发Java程序所需的工具。 如果您想编写自己的程序并编译它们,则需要JDK。 JDK主要针对java开发。
JRE (Java Runtime Environment)
Java运行时环境包含JVM、类库和其他支持文件。 JRE的目标是执行Java文件。
JVM (Java虚拟机)
JVM根据底层操作系统和硬件组合将字节码解释为机器码。它负责所有的事情,比如垃圾收集、数组边界检查等等……Java虚拟机提供了一种平台独立的代码执行方式。
JDK:你需要编写和运行java代码的完整包
OpenJDK:一个独立的JDK实现,使它变得更好
JVM:将Java代码转换为字节码,并提供说明如何编译、加载、验证、检查错误和执行Java代码的规范。
JRE: JVM的实现,一些Java库被用来运行程序
通俗来说:JDK = JRE +开发/调试工具,其中JDK是我们与Java一起工作的完整包,从创建编译到运行它。另一方面,JRE只是代码(字节码)的运行。
注意:-无论我们是安装JDK还是JRE, JVM都会与这两个包捆绑在一起,JVM是JIT编译器将字节代码转换为机器特定代码的部分。
只需阅读关于JDK、JRE、JVM和JIT的文章即可