🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
专栏名称 | 专栏介绍 |
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 | |
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! | |
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 | |
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 | |
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 | |
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
1. JVM(Java Virtual Machine,Java 虚拟机)
2. JRE(Java Runtime Environment,Java 运行环境)
3. JDK(Java Development Kit,Java 开发工具包)
JDK、JRE 和 JVM 是 Java 技术的三个核心概念,它们的区别和关系可以通过以下对比清晰理解:
1. JVM(Java Virtual Machine,Java 虚拟机)
- 功能:执行编译后的
.class
字节码文件,实现 "一次编译,到处运行" 的跨平台特性。 - 特点:
- 平台相关:不同操作系统需要安装对应的 JVM(如 Windows/Linux/Mac 版本)。
- 内存管理:自动处理垃圾回收(GC)。
- 执行引擎:将字节码转换为机器码并执行。
- 类比:汽车的引擎(负责实际运行)。
2. JRE(Java Runtime Environment,Java 运行环境)
- 功能:提供运行 Java 程序的最小环境,包含 JVM 和基础类库(如
java.lang
、java.util
)。 - 组成:
- JVM
- 核心类库(如
rt.jar
) - 其他支持文件(如配置文件、字体等)
- 适用场景:仅需运行 Java 程序(如用户端运行
.jar
文件)。 - 类比:一辆完整的汽车(引擎 + 基本配件,能开但不生产汽车)。
3. JDK(Java Development Kit,Java 开发工具包)
- 功能:提供完整的 Java 开发环境,包含 JRE 和开发工具。
- 组成:
- JRE
- 编译器
javac
(将.java
源码编译为.class
字节码) - 调试工具(如
jdb
) - 打包工具(如
jar
) - 文档工具(如
javadoc
)
- 适用场景:开发 Java 程序(编写、编译、调试)。
- 类比:汽车工厂(能生产汽车,也包含所有运行所需的部件)。
三者的包含关系
JDK = JRE + 开发工具(如 javac)
JRE = JVM + 核心类库
对比表格
组件 | 用途 | 包含内容 | 是否需要安装 |
---|---|---|---|
JDK | 开发 Java 程序 | JRE + 编译器、调试工具等 | 开发者必须安装 |
JRE | 运行 Java 程序 | JVM + 核心类库 | 普通用户只需安装 JRE(但现代 JDK 已内置 JRE) |
JVM | 执行字节码,实现跨平台 | 字节码解释器、内存管理系统等 | 通过安装 JRE/JDK 自动获得 |
实际应用场景
- 开发者:安装 JDK(如使用
javac
编译代码)。 - 用户:只需 JRE 运行程序(但现代 Java 版本通常直接安装 JDK,默认包含 JRE)。
- 跨平台:同一份
.class
文件在不同系统的 JVM 上运行,无需修改代码。
注意:从 Java 11 开始,Oracle 不再单独提供 JRE 安装包,JDK 已内置 JRE 功能。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙