java - Java 组件(JRE、JDK、JVM、JIT 和 javac)之间有什么区别?

标签 java

我很难理解JVM(Java 虚拟机)、JRE(Java 运行时环境)、JDK(Java 开发工具包)、JIT(即时编译器)和javac(Java 编译器)。

所有这些之间有什么好的比较和对比?

最佳答案

enter image description here

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

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

什么是 JDK、JRE 和 JVM?

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

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

JRE :- Java Runtime Environment(简称 JRE)是一个安装包,它提供的环境只能在您的机器上运行(而不是开发)java 程序(或应用程序)。例如(继续同一个例子)在开发了你的会计应用程序之后,你想在你客户的机器上运行这个应用程序。现在在这种情况下,您的客户只需要在他/她的机器上运行您的应用程序,因此您的客户应该安装 JRE 以便在他/她的机器上运行您的应用程序。

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

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

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

关于java - Java 组件(JRE、JDK、JVM、JIT 和 javac)之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42851098/

相关文章:

java arraylist<String> 使用 add() 方法时似乎会覆盖现有项目

java - 使用 Java 表达式查找评论

java - 传递单元素数组内联

java - "=?"在 SQL 查询中使用时代表什么

java - 尽管调用了 flush(),Servlet 仍在缓冲响应

java - 您的类应该实现 ActionListener 还是使用匿名 ActionListener 类的对象

java - 具有自定义类型的 HashSet

java - 获取所有 @Tests 的列表(jUnit 测试)

java - 无法实例化目标 [subclassDTO] 的实例。确保 [subclassDTO] 具有非私有(private)无参构造函数

java - 基于字节和基于字符的输入流之间的区别