汽车工厂三部曲
- **JVM(Java虚拟机)**:装配机器人,负责把设计图(字节码)变成真实汽车
- **JRE(Java运行环境)**:完整的生产线(机器人+零件库+质检员)
- **JDK(Java开发工具包)**:整个工厂(生产线+设计室+研发工具)
组件 | 功能 | 比喻 | 包含内容 |
---|---|---|---|
JDK | 开发Java程序的全套工具 | 汽车工厂总部 | JRE + 编译器 + 调试器 + 文档工具 |
JRE | 运行Java程序的必要环境 | 汽车生产线 | JVM + 基础类库 + 启动器 |
JVM | 执行字节码的虚拟机 | 智能装配机器人 | 类加载器 + 执行引擎 + 内存管理 |
❓ 为什么安装JDK后还要配置环境变量?
就像给汽车工厂的地图标注地址:
1. **PATH变量**:告诉系统在哪里找`javac`和`java`命令
```bash
# 示例:Linux/Mac配置
export PATH=$PATH:/usr/lib/jdk-17/bin
export JAVA_HOME=/usr/lib/jdk-17
**❓ 为什么Android不用JVM?**
```markdown
- Android使用**Dalvik/ART虚拟机**,直接运行`.dex`格式字节码
- 但底层原理相似:`Java代码 → 编译 → 字节码 → 虚拟机执行`
1. 查看组件版本
# 检查JDK编译器
javac -version # 输出:javac 17.0.1
# 检查JRE环境
java -version # 输出:openjdk 17.0.1 2021-10-19
2. 体验完整流程
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Java三剑客,我分清了!");
}
}
# 用JDK编译
javac HelloWorld.java
# 用JRE运行
java HelloWorld
# 输出:Java三剑客,我分清了!
掌握这三者的关系,就像理解了汽车工厂的流水线——JDK造车,JRE开车,JVM是引擎!