一文彻底搞清JVM、JRE与JDK的关系

本文详细介绍了JVM、JRE和JDK的区别与联系,JVM作为Java平台的核心,负责执行字节码。JRE包含JVM和必要的类库,是运行Java代码的基础。而JDK则是Java开发工具集,除了JRE还包括开发工具,如javac等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本专栏由十年Java开发经验专家编写,本专栏定位于Java基础知识,既适合新手入门又适合老鸟巩固基础知识。一共99节课,每节课只需几毛钱。
作者简介:笔名seaboat,擅长工程算法、人工智能算法、自然语言处理、计算机视觉、架构、分布式、高并发、大数据和搜索引擎等方面的技术,大多数编程语言都会使用,但更擅长Java、Python和C++。平时喜欢看书写作、运动、画画。崇尚技术自由,崇尚思想自由。出版书籍:《Tomcat内核设计剖析》、《图解Java并发》、《图解数据结构与算法》、《人工智能原理科普》。

前言

Java 开发人员经常会遇到 JVM、JRE 和 JDK 这三个缩写,对于初学者来说常常是傻傻分不清这些概念的区别,本节将给大家介绍这三个概念。

JVM

首先我们看 JVM,这个概念大家应该比较熟悉了,前面也说过它是 Java 虚拟机的缩写,即 Java Virtual Machine。JVM 是整个 Java 平台中最核心的部分,说它是虚拟机是因为它并不是真正存在的物理机,它是运行在物理机上面的模拟计算机运行的一个进程。简单地说,JVM 就是执行 Java 代码编译后的字节码指令的环境,它是 Java 的基础。

JVM的组成

JVM 主要包含了如下三部分:

  • 类加载器,用于将 .class 文件加载到内存并完成解析工作。
  • 字节码校验器,它会对类加载器所加载的字节码进行一些校验,看是否存在违反规则的操作。
  • 执行引擎,负责执行由 Java 代码编译后的字节码的指令。

JVM的组成

不同操作系统

JVM 需要根据不同的操作系统开发不同的版本,Java 语言的跨平台性就是依靠这个来实现的,在不同的操作系统上层抽象一个虚拟机层,从而屏蔽了硬件底层的差异,最终达到跨平台的效果。如下图,Windows 操作系统对应着 Windows 版本的 JVM,Linux 操作系统对应着 Linux 版本的 JVM,其它操作系统也类似。

不同操作系统的 JVM

JRE

JRE 是 Java 运行环境(Java Runtime Environment)的缩写,JRE 包含了 JVM 和一些 JVM 运行时所需要的 Java 核心类库,此外还包含了一些命令工具。JRE 是 Java 代码可以运行的最低要求,带着你写完的 Java 代码和 JRE 就可以在其它机器上跑了。

JRE

JDK

JDK 是 Java开发工具集(Java Development Kit)的缩写,JDK 包含了 JRE 和开发过程中可能用到的一些命令工具。JDK 是 Java 语言的最大的集合,我们常说的 Java 一般指的就是 JDK,它包含了一整套完整的开发工具集和运行环境。常见的命令工具包括:java、javac、jdb、jar等等方面的工具和命令。

JDK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超人汪小建(seaboat)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值