jdk、jre和jvm是逐层包含关系:jdk ⊃ jre ⊃ jvm;jvm执行字节码并管理内存与安全,jre提供运行环境(jvm+类库+工具),jdk则在jre基础上增加编译、调试等开发工具。
jdk、jre 和 jvm 不是并列关系,而是逐层包含的架构关系:jdk ⊃ jre ⊃ jvm。它们分工明确,各自承担java技术栈中不同阶段的核心职责。
JVM 是执行字节码的抽象引擎
JVM(Java Virtual Machine)是整个体系最底层的运行核心。它不直接处理.java源文件,只识别和执行.class字节码。它的关键能力包括:
- 将字节码动态翻译为当前操作系统的机器指令(解释执行 + JIT即时编译)
- 管理运行时内存区域(堆、方法区、虚拟机栈、程序计数器、本地方法栈)
- 自动执行垃圾回收(GC),释放不再使用的对象内存
- 通过字节码校验机制保障运行安全,防止恶意指令破坏系统
- 屏蔽Windows/Linux/macOS等平台差异,实现“一次编译,到处运行”
JRE 是运行Java程序的最小环境
JRE(Java Runtime Environment)是面向终端用户的运行载体,它 = JVM + Java核心类库 + 运行支持工具。其中:
- JVM 是它的执行中枢
- 核心类库(如java.lang、java.util、java.io等)提供基础API,比如String、ArrayList、FileInputStream这些日常开发离不开的类都来自这里
- 运行工具 如java命令,本质是启动JVM并加载主类的脚本封装
安装JRE后,用户就能直接运行已编译好的.jar或.class文件,但无法编写或编译新代码。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
JDK 是面向开发者的完整工具包
JDK(Java Development Kit)是JRE的超集,专为开发者设计,它 = JRE + 开发与调试工具 + 源码与文档。典型组件包括:
- javac:将.java源码编译为.class字节码
- jdb、jconsole、jstat:用于调试、监控和性能分析
- jar:打包资源和类为可部署的.jar文件
- javadoc:从源码注释生成API文档
- 附带src.zip——Java标准库的源代码,便于调试追踪和深入学习
开发者必须安装JDK;普通用户只需JRE;而JVM本身不能独立安装,它始终作为JRE/JDK的一部分存在。










