图文并茂解释 Java JVM、JRE 和 JDK

开发 后端
Java 技术既是一种编程语言又是一个平台。Java 编程语言是一种高级面向对象语言,具有特定的语法和风格。Java 平台是 Java 编程语言应用程序运行的特定环境。

在本章中,我们将讨论 Java 编程语言中 JVM、JRE 和 JDK 的一个重要定义。我们还讨论了 JVM、JRE 和 JDK 之间的区别。

Java 技术既是一种编程语言又是一个平台。Java 编程语言是一种高级面向对象语言,具有特定的语法和风格。Java 平台是 Java 编程语言应用程序运行的特定环境。

我们先从什么是JDK说起?

1、JDK(Java开发工具包)

JDK (Java Development Kit) 是JRE的超集,包含了JRE中的所有内容,以及开发和运行Java程序或应用程序所必需的工具,如编译器、调试器、JavaDoc、keytool等。

下图显示 JDK(Java 开发工具包) 是一个软件开发工具包,它包含 JRE 中的所有内容,以及开发和运行 Java 程序或应用程序所需的工具,例如编译器、调试器、JavaDoc、keytool 等。

JDK 是特定于平台的软件,这就是我们为 Windows、Mac 和 Unix 系统提供单独安装程序的原因。例如,如果您导航到位于
https://www.oracle.com/in/java/technologies/javase-downloads.html的 Java 下载页面,您将看到针对不同操作系统(Windows、Linux、Mac 等)的不同安装程序):

2、JVM(Java虚拟机)

JVM 是 Java 编程语言的一个非常重要的组成部分。当您运行 Java 程序时,Java 编译器首先将您的 Java 代码编译为字节码。然后,JVM 将字节码翻译成本地机器码(计算机 CPU 直接执行的一组指令)。
JVM 将字节码翻译成机器语言,由于机器语言取决于所使用的操作系统,很明显 JVM 是平台(操作系统)相关的。

JVM之所以被称为虚拟是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。

如果您有兴趣了解 JVM 架构,请访问JVM 架构详解。

3、JRE(Java运行时环境)

Java 运行时环境(JRE)提供库、Java 虚拟机和其他组件来运行用 Java 编程语言编写的小程序和应用程序。

JRE 不包含任何开发工具,如 Java 编译器、调试器、JShell 等。

如果你只是想执行一个java程序,你可以只安装JRE。您不需要 JDK,因为不需要开发或编译 java 源代码。

下图显示了 JRE(Java 运行时环境)是一个软件包,它提供 Java 类库以及 Java 虚拟机 (JVM) 和其他组件来运行用 Java 编程编写的应用程序。

JRE = JVM + Java 包类(如 util、math、lang、awt、swing 等)+ 运行时库。

4、JDK 对比 JRE 对比 JVM

让我们看一下 JDK、JRE 和 JVM 之间的一些重要区别。

  • JDK用于开发目的,而 JRE 用于运行 java 程序。
  • JDK和JRE都包含了JVM,这样我们就可以运行我们的java程序了。
  • JVM是 Java 编程语言的核心,并提供平台独立性。

下图显示了 JVM、JRE 和 JDK 之间的关系:

责任编辑:姜华 来源: 今日头条
相关推荐

2012-05-28 15:32:05

PHP

2020-09-04 09:20:59

Java开发代码

2011-11-21 15:12:54

Java断点Eclipse

2011-01-18 18:08:28

Thunderbird

2011-01-18 18:29:28

Thunderbird

2023-05-16 08:01:13

架构网站演进

2012-07-23 14:39:27

移动

2011-01-19 17:34:39

Postfix如何接收邮件

2011-01-19 17:30:21

Postfix邮件投递

2011-01-20 09:13:18

Postfix

2021-12-27 08:04:49

架构网站高并发

2011-01-21 10:28:06

2011-01-19 10:30:20

UbuntuThunderbird

2022-07-18 14:33:05

PythonPDF报告

2012-07-27 10:27:19

OfficeWord

2012-05-29 14:27:34

PHP

2011-08-03 15:21:23

ORM XCode 数据库

2022-04-20 18:30:00

算法架构粗排

2011-07-04 16:57:36

QT 布局 界面

2009-07-15 14:49:16

点赞
收藏

51CTO技术栈公众号