当前位置: 首页 > news >正文

图解Java运行机制-JVM、JRE、JDK区别

以下是Java运行机制及JVM、JRE、JDK区别的图解与说明:

 

---

 

### 一、Java程序运行机制

1. **编写与编译**  

   Java源文件(`.java`)通过**JDK中的编译器(javac)**编译为字节码文件(`.class`),字节码是一种与平台无关的中间代码。  

2. **执行流程**  

   字节码文件由**JVM(Java虚拟机)**解释执行,JVM将字节码转换为具体操作系统的机器指令,从而实现“一次编译,到处运行”。

 

---

 

### 二、核心组件详解

#### 1. JVM(Java Virtual Machine)

- **功能**:  

  负责加载字节码文件,管理内存、垃圾回收、安全机制等,是Java跨平台的核心。不同操作系统需安装对应的JVM实现。

- **特点**:  

  - 平台相关(如Windows和Linux需不同JVM)。  

  - 仅关注`.class`文件,不参与源码开发。

 

#### 2. JRE(Java Runtime Environment)

- **功能**:  

  包含**JVM + 核心类库(如`java.lang`、`java.util`)**,提供运行Java程序的基础环境。  

- **适用场景**:  

  普通用户运行Java程序(如客户端应用、浏览器Applet)时安装JRE即可。

 

#### 3. JDK(Java Development Kit)

- **功能**:  

  包含**JRE + 开发工具**(如编译器`javac`、调试器`jdb`、文档生成工具`javadoc`)。  

- **适用场景**:  

  Java开发者需安装JDK以编写、编译和调试代码。

 

---

 

### 三、三者关系图解

```

JDK(开发工具包)

├── JRE(运行环境)

│ ├── JVM(虚拟机)

│ └── 核心类库(如rt.jar)

└── 开发工具(javac、jdb等)

```

- **层级关系**:JDK > JRE > JVM。  

- **开发与运行分离**:  

  - **开发阶段**:需JDK(含JRE)生成`.class`文件。  

  - **运行阶段**:仅需JRE解释执行字节码。

 

---

 

### 四、区别对比

| **组件** | **核心功能** | **包含内容** | **用户群体** |

|----------|-----------------------------|----------------------------------|--------------------|

| **JVM** | 执行字节码,实现跨平台 | 无独立安装包,内置于JRE | 所有Java程序使用者 |

| **JRE** | 运行Java程序 | JVM + 核心类库 | 普通用户 |

| **JDK** | 开发Java程序 | JRE + 开发工具 | 开发者 |

 

---

 

### 五、跨平台实现原理

Java通过**分层设计**实现跨平台:  

1. 开发者编写与平台无关的Java源码。  

2. 编译器生成统一的字节码(`.class`)。  

3. **JVM根据不同操作系统翻译字节码**,映射为本地指令执行。

 

---

 

### 总结

- **开发环境**:JDK = JRE + 开发工具。  

- **运行环境**:JRE = JVM + 核心类库。  

- **核心机制**:JVM屏蔽底层差异,是跨平台的基石。  

相关文章:

  • 方法的重写
  • ubuntu安装openWebUI和Dify【自用详细版】
  • 【多源BFS】01 矩阵 / 飞地的数量 / 地图中的最高点 / 地图分析 / 腐烂的苹果
  • 01-JVM 内存模型与 GC 原理
  • 蓝桥杯-蓝桥幼儿园(并查集)
  • 采用小程序远程控制LED灯亮灭
  • 数据库中的数组: MySQL与StarRocks的数组操作解析
  • Pytorch的安装和使用
  • 深入解析 Jenkins Agent 的 .jnlp 启动文件
  • MuJoCo 仿真 + TOPPRA 最优时间轨迹规划!机械臂运动效率拉满(附代码)
  • 小刚说C语言刷题——第18讲 循环之while和do-while语句
  • 深入理解Spring IoCDI
  • Pandas 库
  • Streamlit性能优化:缓存与状态管理实战
  • Elasticsearch:加快 HNSW 图的合并速度
  • 自己搭建cesium应用程序
  • 河道违建检测数据集VOC+YOLO格式223张1类别
  • spdlog C++日志库使用教程
  • 试剂SYBR 14核酸染料在染色时的操作步骤(说明)
  • 【python3】关于像素密度计算
  • 央行:中国政府债务扩张仍有可持续性
  • 数说母亲节|妈妈的妈妈带娃比例提升,托举效果如何?
  • 欧盟公布对美关税反制清单,瞄准美国飞机等产品
  • 中俄元首今年首次面对面会谈,达成哪些新的重要共识?
  • 越秀地产前4个月销售额约411.2亿元,达年度销售目标的34.1%
  • 乡村快递取件“跑腿费”屡禁不止?云南元江县公布举报电话