JVM、JDK、JRE的区别

详细解释与关系图解

  1. JVM (Java虚拟机):

    • 角色: Java程序的执行引擎

    • 核心任务:

      • 加载: 读取.class字节码文件。

      • 验证: 确保字节码安全、符合规范。

      • 解释/编译: 将字节码逐条解释执行,或通过即时编译器(JIT)编译成本地机器码加速执行。

      • 执行: 运行编译后的代码。

      • 内存管理: 自动进行垃圾回收(GC),管理堆、栈等内存区域。

    • 关键点: JVM是平台相关的。不同操作系统(Windows、Linux、macOS)需要对应版本的JVM。正是JVM实现了Java"一次编写,到处运行"的核心特性。

  2. JRE (Java运行时环境):

    • 角色:已编译 的Java程序提供运行环境

    • 包含:

      • JVM: 用于执行程序。

      • Java核心类库: 庞大的预编译代码库(如java.lang, java.io, java.net, java.util, java.math等),提供字符串处理、文件操作、网络通信、数据结构等基础功能。这些库被打包在rt.jar等文件中。

    • 使用者: 如果你的电脑只需要运行Java应用程序(如Eclipse IDE、Minecraft游戏、某些桌面软件),安装JRE就足够了。

  3. JDK (Java开发工具包):

    • 角色: 为Java开发者 提供完整的开发环境

    • 包含:

      • JRE: 所以JDK包含了运行Java程序所需的一切。

      • 开发工具:

        • javac:Java编译器,将.java源代码文件编译成.class字节码文件。

        • java:Java应用程序启动器(实际调用JVM)。

        • javadoc:根据源代码注释生成API文档。

        • jdb:Java调试器。

        • jar:用于创建和管理JAR(Java归档)文件的工具。

        • jconsole:监控和管理Java应用程序。

        • javap:反编译器。

        • ...以及其他实用工具。

    • 使用者: 你需要编写、编译、调试Java程序时,必须安装JDK


🧩 三者关系图解

相关推荐
皓月斯语18 分钟前
B3865 [GESP202309 二级] 小杨的 X 字矩阵 题解
开发语言·c++·矩阵·题解
Highcharts.js8 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
头发还在的女程序员10 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考
java·开发语言·陪诊系统·陪诊app·医院陪诊陪护
CodeStats10 小时前
【Spring事务】Spring事务注解 @Transactional 完整体系:从 MySQL 隔离级别到 MyBatis 原理详解
java·spring·mybatis·事务·transactional
我命由我1234511 小时前
Android 开发问题:为 PDFView 设置一个带有黑色边框的背景 drawable,但边框没有生效
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
爱写代码的小朋友12 小时前
从零开始学 Win32 API:C++ 窗口编程实战(VS Code + MinGW-w64 命令行详解)
开发语言·c++
果汁华12 小时前
Function Calling 与 Python 实战完整指南
开发语言·网络·python
小小晓.12 小时前
C++:语句和作用域
开发语言·c++
都叫我大帅哥13 小时前
从Python到Java:为什么企业级Agent最终会选择Java?
java·ai编程
wanderist.13 小时前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法