JDK、JRE和JVM之间的区别

Java开发工具包(JDK) )是一种用于开发Java应用程序和小程序的软件开发环境。它包括Java运行时环境(JRE)、解释器/加载器(Java)、编译器(javac)、archiver(jar)、文档生成器(Javadoc)以及Java开发所需的其他工具。

null

现在我们需要一个环境来运行我们的程序。从今以后 JRE 代表 “Java运行时环境” 也可以写成 “Java RTE。” Java运行时环境提供了执行Java应用程序的最低要求;它包括 Java虚拟机(JVM),核心类 ,及 支持文件 .

现在让我们讨论一下 JVM ,它代表java虚拟机。详情如下:

  • A. 规格 其中指定了Java虚拟机的工作方式。但实现提供者可以独立选择算法。它的实现由Sun和其他公司提供。
  • 实施 是一个满足JVM规范要求的计算机程序。
  • 运行时实例 每当在命令提示符下编写java命令以运行java类时,就会创建一个JVM实例。

在继续讨论JDK、JRE和JVM之间的区别之前,让我们先简要地讨论一下它们,并与下面提出的图片联系起来。

图片[1]-JDK、JRE和JVM之间的区别-yiteyi-C++库

不要感到困惑,因为我们将逐一讨论所有这些问题。

1.JDK (Java开发工具包)是一个为用户提供环境的工具包 开发和执行(运行) Java程序。JDK是一个包含两件事的工具包(或包)

  • 开发工具(提供开发java程序的环境)
  • JRE(执行java程序)。

2.JRE (Java运行时环境)是一个安装包,它为 只运行(不开发) 将java程序(或应用程序)安装到您的机器上。JRE只供那些只想运行Java程序的人使用,这些程序是您系统的最终用户。

3. JVM ( Java虚拟机) 是JDK和JRE中非常重要的一部分,因为它包含或内置于两者中。使用JRE或JDK运行的任何Java程序都会进入JVM,JVM负责逐行执行Java程序,因此它也被称为 解释者 .

现在,让我们讨论JRE的组成部分,以了解它的重要性,并了解它实际上是如何工作的。为此,让我们讨论组件。

JRE的组成部分如下:

  1. 部署技术 ,包括部署、Java Web Start和Java插件。
  2. 用户界面工具包 包括…在内 抽象窗口工具包(AWT)、Swing、Java 2D、可访问性、图像I/O、打印服务、声音、拖动 , 和下降(DnD) ,及 输入法 .
  3. 集成库 包括…在内 接口定义语言(IDL)、Java数据库连接(JDBC)、Java命名和目录接口(JNDI)、远程方法调用(RMI)、Internet Orb间协议远程方法调用(RMI-IIOP) 脚本编写 .
  4. 其他基本库 包括…在内 Java/Math扩展(Java/output mechanism)、输入/输出机制(Java/Math扩展)、JNI接口、JNI接口、JMI扩展 Java for XML处理(XML JAXP) .
  5. Lang和util库 包括…在内 lang和util、管理、版本控制、zip、工具、反射、集合、并发实用程序、Java存档(JAR)、日志、首选项API、Ref对象 正则表达式 .
  6. Java虚拟机(JVM) 包括…在内 Java热点客户端 服务器虚拟机 .

在充分了解了这些组件之后,现在让我们讨论一下JRE的工作原理。为了理解JRE是如何工作的,下面我们来举例说明如下:

插图:

考虑一个java源文件保存为 实例爪哇的 .该文件被编译成一组字节码,存储在“ “档案。就在这里“ 实例班 “.

Compile time

笔记 :从上面可以解释编译期间的媒体操作计算。

以下操作在运行时发生,如下所示:

  • 类加载器
  • 字节码校验器
  • 勇敢者
    • 执行字节码
    • 对底层硬件进行适当的调用

现在让我们简单地讨论一下JVM是如何工作的。详情如下:

JVM在Java程序运行时成为JRE的一个实例。它被广泛称为运行时解释器。JVM在很大程度上有助于从程序员那里抽象出内部实现,这些程序员从JDK中为自己的程序使用库。

它主要负责三项活动。

  • 加载
  • 连接
  • 初始化

同样,现在让我们讨论一下JRE的工作,如下所示:

  • JVM(Java虚拟机)充当运行Java应用程序的运行时引擎。JVM是真正调用 主要的 方法出现在java代码中。JVM是JRE(Java运行时环境)的一部分。
  • Java应用程序被称为WORA(一次写入,在任何地方运行)。这意味着程序员可以在一个系统上开发Java代码,并且可以期望它在任何其他支持Java的系统上运行,而无需进行任何调整。由于JVM,这一切都是可能的。
  • 当我们编译一个 JAVA 文件 中存在具有相同类名的文件(包含字节码) JAVA 文件由Java编译器生成。这 文件在运行时会分为不同的步骤。这些步骤一起描述了整个JVM。

图片[3]-JDK、JRE和JVM之间的区别-yiteyi-C++库

本文由 克里希纳·巴蒂亚 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享