JRE、JVM 和 JDK 的区别

Java 的运行和开发环境中,有三个重要的概念:JRE、JVM 和 JDK。

1. JVM (Java Virtual Machine)
  • 定义:Java 虚拟机,是运行 Java 程序的虚拟环境。
  • 作用 :
    • 执行 .class 字节码文件。
    • 提供内存管理、垃圾回收和安全机制。
    • 不同平台的 JVM 是不同的,但对 Java 程序提供了统一的运行环境。
  • 特点 :
    • JVM 是 Java 平台无关性的核心。
    • 它不包含任何开发工具。
2. JRE (Java Runtime Environment)
  • 定义:Java 运行环境,包括 JVM 和运行 Java 应用所需的核心类库。
  • 作用 :
    • 提供 Java 应用运行所需的环境。
    • 包含 JVM 和标准的 Java 类库,但不包括开发工具(如编译器)。
  • 特点 :
    • JRE 是给普通用户运行 Java 程序的。
    • 例如,运行 .jar 文件时,只需要安装 JRE。
3. JDK (Java Development Kit)
  • 定义:Java 开发工具包,是 Java 开发者的完整工具集合。
  • 作用 :
    • 包含 JRE(JVM + 核心类库)和开发工具(如 javac 编译器、调试工具等)。
    • 开发 Java 应用程序和 Applet 的必备工具。
  • 特点 :
    • 是开发人员使用的完整工具集。
    • 如果你需要编写、调试和编译 Java 程序,必须安装 JDK。

总结

组件 包含内容 适用场景
JVM 虚拟机,仅运行 Java 字节码 Java 程序运行的核心
JRE JVM + 核心类库 运行 Java 程序
JDK JRE + 开发工具(如编译器、调试器等) 开发、编译和调试 Java 程序
相关推荐
_冷眸_6 分钟前
Python 调用大模型 API:最小请求、Base URL 和 401/404 排查
开发语言·人工智能·python
niucloud-admin17 分钟前
NIUCLOUD PHP SAAS上门家政使用文档:服务保障
java·开发语言·php
IT枫斗者枫哥31 分钟前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
知识搬运临时工42 分钟前
一个模板把 AEM 拖进 Full GC 死亡螺旋:300% CPU、7 GB 堆、310 万行堆栈
java·aws
熊猫钓鱼>_>44 分钟前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
用户432935928051 小时前
CoAP还是MQTT:1万只Cat.1水表三个月带宽续航实测
java
知守观1 小时前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
Ai-_Man1 小时前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
raindayinrain1 小时前
c++设计模式
开发语言·c++·设计模式
Java成神之路-1 小时前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java