Java组件(JRE,JDK,JVM,JIT,javac)之间的区别?

时间:2017-03-17 06:57:48

标签: java

我在理解 JVM (Java虚拟机), JRE (Java运行时环境), JDK <之间的区别时遇到了困难/ strong>(Java Development Kit), JIT (即时编译器), javac (Java编译器)。

有人可以告诉我一个很好的比较和所有这些之间的对比吗?

2 个答案:

答案 0 :(得分:2)

enter image description here

你可能已经做了很多谷歌找到这个问题的答案,并遇到了一个非常无聊的图表,显示了JVM,JRE和JVM之间的架构和相互关系。我花了将近一年的时间来理解它(理论上不是这样)。

让我们找出这个简单(但非常重要)问题的答案:

什么是JDK,JRE和JVM?

JDK: - Java Development Kit(简称JDK)是Kit,它提供了开发和执行(运行)Java程序的环境。例如。您(作为Java开发人员)正在您的计算机上开发会计应用程序,那么您需要在计算机中开发和运行此桌面应用程序需要什么?您将需要J-D-K用于此目的,您只需要访问sun或oracle的官方网站,将最新版本的JDK下载到您的机器中。

因此,JDK是一个工具包(或包),它包括两件事:i)开发工具(提供开发java程序的环境)和ii)JRE(执行你的java程序)。 JDK仅供Java开发人员使用。

JRE: - Java运行时环境(比如说JRE)是一个安装包,它提供的环境只能在你的机器上运行(不开发)java程序(或应用程序)。对于例如(继续使用相同的示例),在开发会计应用程序之后,您希望将此应用程序运行到客户端的计算机中。现在,在这种情况下,您的客户端只需要将您的应用程序运行到他/她的机器中,这样您的客户端就可以按顺序安装JRE以将您的应用程序运行到他的机器中。

因此,JRE仅供那些只想运行Java程序的人使用,即系统的最终用户。

JVM: - Java虚拟机(JVM)是​​JDK和JRE中非常重要的一部分,因为它包含或内置于两者中。无论你使用JRE还是JDK运行的java程序都进入JVM,JVM负责逐行执行java程序,因此它也称为解释器(稍后我们将讨论解释器)。因此,您无需将JVM单独安装到您的计算机中,因为它内置于您的JDK或JRE安装包中。我们很快就会有关于JVM的更多信息。

最后,在了解了java的所有三个主要部分后,您可以查看上图,清楚地了解java的所有主要组件之间的体系结构和相互关系。

答案 1 :(得分:1)

嗯,我想告诉你我对此的理解。

JDK(Java Developer's Kit)是一个完整的java开发平台,我们可以编译,调试和运行代码,JDK依赖于操作系统,所以有一点版本 按Windows,Linux和Mac分类。

JRE(Java运行时环境)是java的运行时环境,如果您曾玩过任何用Java编写的游戏,您可以发现在玩游戏时必须使用JRE。这是Java运行时环境。

JVM(Java虚拟机)是JRE的一部分。它是JRE最重要的部分。

JIT是可以将字节码转换为二进制代码的工具。

javac是可以将代码转换为Java字节码的工具。


我们可以得出这样的关系:

JDK = JRE + javac + jconsole + jvisualvm + demo + document + other

JRE = JVM + JAVA二进制代码+其他库+其他

JVM = JIT +其他

diagram showinh relationships