我在理解Java虚拟机(JVM)、Java运行时环境(JRE)、Java开发工具包(JDK)、即时编译器(JIT)和Java编译器(javac)之间的区别时遇到了困难。
它们之间有什么好的比较和对比呢?
我在理解Java虚拟机(JVM)、Java运行时环境(JRE)、Java开发工具包(JDK)、即时编译器(JIT)和Java编译器(javac)之间的区别时遇到了困难。
它们之间有什么好的比较和对比呢?
你可能已经通过谷歌搜索了很多次,想找到关于JVM、JRE和JDK之间架构和相互关系的答案,但是却只看到了一张无聊的图表。实际上,我花了近一年的时间才真正理解了它们(而不仅仅是理论方面)。
让我们来解决这个简单但非常重要的问题:
JDK、JRE和JVM是什么?
JDK:Java开发工具包(简称JDK)是提供开发和执行Java程序所需环境的工具包。例如,作为Java开发人员,您正在自己的计算机上开发会计应用程序,那么您需要在计算机上安装什么来开发和运行这个桌面应用程序呢?您需要下载最新版本的JDK并安装到您的计算机中。因此,JDK是一个包含两个组成部分的工具包,即开发工具(提供开发Java程序的环境)和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的所有主要组件之间的架构和相互关系。
嗯,我想告诉你我的理解。
JDK(Java开发工具包)是一个完整的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 + 其他