JVM核心四子系统解析:揭秘Java执行引擎
此架构通过各组件协同工作,实现 Java “一次编译,处处运行” 的核心能力。提供与操作系统原生方法(如 C/C++ 库)的交互能力。
·
JVM 作为 Java 程序执行的核心引擎,主要包括以下四个核心子系统:
一、类加载子系统(ClassLoader Subsystem)
- 加载(Loading)
负责加载.class字节码文件到内存中 - 链接(Linking)
- 验证:校验字节码安全性
- 准备:为静态变量分配内存空间
- 解析:将符号引用转为直接引用
- 初始化(Initialization)
执行static代码块与静态变量赋值
二、运行时数据区(Runtime Data Areas)
- 方法区(Method Area)
存储类结构信息(如常量池、静态变量等) - 堆区(Heap)
所有对象实例分配的内存区域 - 栈区(Stack)
- Java 虚拟机栈:存储方法调用的栈帧
- 本地方法栈:支持 Native 方法调用
- 程序计数器(PC Register)
保存当前线程执行指令的地址 - 本地内存(Native Memory)
通过 JNI 调用的外部资源区域
flowchart TD
A[Class File] --> B[ClassLoader]
B --> C[Method Area]
C --> D[Java Stack]
D --> E[Execution Engine]
https://www.iqiyi.com/v_lva5uqtqhc.html
https://www.iqiyi.com/v_l0pbqhl05c.html
https://www.iqiyi.com/v_111a08ienyc.html
https://www.iqiyi.com/v_27a6ixqp94s.html
三、执行引擎(Execution Engine)
- 解释器(Interpreter)
逐行解释执行字节码 - 即时编译器(JIT Compiler)
将热点代码编译为本地机器码 - 垃圾回收器(GC)
自动管理堆内存:标记-清除、复制、分代收集等算法
四、本地接口(JNI)
提供与操作系统原生方法(如 C/C++ 库)的交互能力
技术特性补充
- 栈式执行架构:所有计算操作均通过操作数栈完成
- 自适应优化:通过方法调用计数器触发 JIT 编译
- 内存屏障机制:通过
volatile等关键字保证可见性 - https://www.iqiyi.com/v_lva5uqtqhc.html
https://www.iqiyi.com/v_l0pbqhl05c.html
https://www.iqiyi.com/v_111a08ienyc.html
https://www.iqiyi.com/v_27a6ixqp94s.html
此架构通过各组件协同工作,实现 Java “一次编译,处处运行” 的核心能力。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)