JDK,JRE和JVM之间的区别

时间:2020-02-23 14:33:07  来源:igfitidea点击:

JDK,JRE和JVM之间的区别是流行的面试问题之一。
您可能还会被要求解释JDK,JRE和JVM。

JDK,JRE和JVM之间的区别

JDK,JRE和JVM是Java编程语言的核心概念。
我们在编程中不使用这些概念。
但是,作为Java开发人员,我们应该了解它们。

1. JDK

Java开发套件(又名JDK)是Java Environment的核心组件,它提供编译,调试和执行Java程序所需的所有工具,可执行文件和二进制文件。

JDK是特定于平台的软件,因此我们为Windows,Mac和Unix系统提供了单独的安装程序。

可以说JDK是JRE的超集,因为它包含带有Java编译器,调试器和核心类的JRE。

2. JVM

JVM是Java编程语言的核心。
当我们执行Java程序时,JVM负责将字节代码转换为机器特定的代码。

JVM也依赖于平台,并提供核心Java功能,例如内存管理,垃圾回收,安全性等。

JVM是可定制的,我们可以使用java选项对其进行定制。
例如,为JVM分配最小和最大内存。

JVM之所以称为虚拟的,是因为它提供的接口不依赖于底层操作系统和机器硬件。

与硬件和操作系统的这种独立性使Java程序可以在任何地方编写一次运行。

3. JRE

JRE是JVM的实现。
它提供了执行Java程序的平台。
JRE由JVM,Java二进制文件和其他类组成,可以成功执行任何程序。

JRE不包含任何开发工具,例如Java编译器,调试器,JShell等。

如果只想执行Java程序,则只能安装JRE。
您不需要JDK,因为不需要开发或者编译Java源代码。

现在,我们对JDK,JVM和JRE有了基本的了解,让我们研究一下两者之间的区别。

JDK,JRE和JVM

让我们看一下JDK,JRE和JVM之间的一些重要区别。

  • JDK用于开发目的,而JRE用于运行Java程序。

  • JDK和JRE都包含JVM,因此我们可以运行我们的java程序。

  • JVM是Java编程语言的核心,并提供平台独立性。

即时编译器(JIT)

有时您会在教科书中发现JIT以及JVM,JDK和JRE。
JIT是JVM的一部分,它优化了将字节码转换为机器特定语言的过程。
它可以同时编译相似的字节码,并减少了将字节码编译为机器特定语言所需的总时间。