聊一聊关于JDK、JRE 和 JVM 的区别

开发
JDK包括 Java 运行时环境 (JRE)、解释器/加载器 (Java)、编译器(javac)、归档器 (jar)、文档生成器 (Javadoc) 以及 Java 开发所需的其他工具。

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

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

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

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

在继续讨论 JDK、JRE 和 JVM 之间的区别之前,让我们先简要讨论它们,并将它们与下面提出的图像相互关联。

不用感到困惑,因为我们将一一讨论它们。

(1) JDK(Java Development Kit)是一个提供开发和执行(运行) Java程序环境的工具包。JDK 是一个工具包(或包),包括两个东西

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

(2) JRE(Java Runtime Environment)是一个安装包,它提供了一个环境,只在你的机器上运行(而不是开发) java程序(或应用程序)。JRE 仅供那些只想运行作为系统最终用户的 Java 程序的人使用。

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

现在让我们讨论 JRE 的组件,以了解它的重要性并了解它的实际工作原理。为此,让我们讨论组件。

JRE的组件如下:

  • 部署技术,包括部署、Java Web Start 和 Java 插件。
  • 用户界面工具包,包括抽象窗口工具包 (AWT)、Swing、Java 2D、可访问性、图像 I/O、打印服务、声音、拖放( DnD)和输入法。
  • 集成库,包括接口定义语言 (IDL)、Java 数据库连接 (JDBC)、Java 命名和目录接口 (JNDI)、远程方法调用 (RMI)、基于 Internet Inter-Orb 协议的远程方法调用 (RMI-IIOP)和脚本。
  • 其他基础库,包括国际支持、输入/输出 (I/O)、扩展机制、Beans、Java 管理扩展 (JMX)、Java 本机接口 (JNI)、数学、网络、覆盖机制、安全性、序列化和Java XML 处理 (XML JAXP)。
  • Lang 和 util 基础库,包括lang 和 util、管理、版本控制、zip、仪器、反射、集合、并发实用程序、Java 存档 (JAR)、日志记录、首选项 API、参考对象和正则表达式。
  • Java 虚拟机 (JVM),包括Java HotSpot 客户端和服务器虚拟机。

在对组件有足够的了解之后,现在让我们讨论一下 JRE 的工作原理。为了理解 JRE 是如何工作的,让我们考虑下面的一个例子:

考虑一个保存为 ‘ Example.java’的 java 源文件。该文件被编译成一组字节码,存储在“ .class ”文件中。这里将是“
Example.class ”。

注意:从上面可以解释编译时的媒体操作计算。

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

(1) 类加载器

(2) 字节码验证器

(3) 口译员

  • 执行字节码
  • 对底层硬件进行适当的调用

现在让我们简要讨论一下 JVM 是如何工作的。如下:

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

它主要负责三项活动。 

  • Loading
  • Linking
  • Initialization

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

  • JVM(Java 虚拟机)充当运行 Java 应用程序的运行时引擎。JVM 是实际调用java 代码中存在的main方法的那个。JVM 是 JRE(Java 运行时环境)的一部分。
  • Java 应用程序称为 WORA(一次编写,随处运行)。这意味着程序员可以在一个系统上开发 Java 代码,并且可以期望它在任何其他支持 Java 的系统上运行而无需任何调整。由于 JVM,这一切皆有可能。
  • 当我们编译文件时*.java,Java 编译器会生成与*.java文件中存在的相同类名的*.class文件(包含字节码) 。当我们运行这个*.class文件时,它会进入各个步骤。这些步骤一起描述了整个 JVM。
责任编辑:赵宁宁 来源: Linux迷
相关推荐

2010-09-25 14:58:12

JVMJDKJRE

2020-11-10 07:46:58

函数printf 数据

2021-05-30 19:01:59

工具IAST网络

2023-03-03 12:37:50

JavaJVM内存溢出

2020-05-12 22:24:44

JVM系统加载器

2020-03-06 15:11:21

进程线程Web

2009-07-08 17:59:51

JDK JRE

2023-06-02 07:45:39

2017-12-26 10:19:14

大数据问题缺陷

2020-09-08 06:54:29

Java Gradle语言

2022-05-18 16:35:43

Redis内存运维

2023-07-06 13:56:14

微软Skype

2022-02-21 15:01:45

MySQL共享锁独占锁

2018-06-07 13:17:12

契约测试单元测试API测试

2024-03-28 09:02:25

PythonGetattr工具

2010-09-26 14:32:34

JDKJREJVM

2021-03-01 18:37:15

MySQL存储数据

2023-09-20 23:01:03

Twitter算法

2021-12-06 09:43:01

链表节点函数

2021-07-16 11:48:26

模型 .NET微软
点赞
收藏

51CTO技术栈公众号