Java 虚拟机 (JVM) 主要包含以下部分:
类加载器:
- 负责将 .class 文件加载到 JVM 中。
- 示例:Bootstrap 类加载器、扩展类加载器、系统类加载器
执行引擎:
- 执行 Java 字节码并管理线程。
- 示例:即时 (JIT) 编译器、HotSpot 编译器
垃圾收集器:
- 自动释放不再使用的对象占用的内存。
- 示例:串行收集器、并行收集器、G1 收集器
内存区:
- 存储执行过程中所需的数据的各个区域,包括:
- 栈:存储局部变量和方法返回地址。
- 堆:存储对象实例。
- 方法区 / 元空间:存储类定义、常量池和方法代码。
运行时数据区域:
- 线程的私有数据结构,包括:
- 程序计数器:存储当前执行字节码指令的地址。
- 局部变量表:存储方法的局部变量。
- 操作数栈:存储操作数和中间结果。
本机接口:
- 与本地代码(例如 C/C++ 代码)交互的机制。
- 示例:Java Native Interface (JNI)
安全管理器:
- 控制 Java 应用程序对系统资源的访问。
- 示例:SecurityManager 类
调试系统:
- 提供调试和故障排除功能。
- 示例:Java Debug Interface (JDI)