JVM导学
什么是JVM
- 定义:
JVM(Java Virtual Machine,Java 虚拟机)是一个可以运行 Java 字节码程序的虚拟计算机,它是 Java 技术的核心组件之一。
简单来说:
JVM 是一种 运行 Java 程序的虚拟环境,它把 Java 编译后的 .class 字节码文件转换成机器可以理解的指令,并在不同的操作系统上执行,使得 Java 实现了“一次编写,到处运行”(Write Once, Run Anywhere)的理念。 - 主要作用:
- 执行 Java 字节码:Java 源代码被编译为字节码(.class 文件),由 JVM 来加载和执行。
- 内存管理:包括堆内存、栈内存、方法区等,是 JVM 自动垃圾回收(GC)机制的基础。
- 跨平台支持:JVM 为 Java 提供平台无关性,字节码在任意支持 JVM 的系统上都能运行。
- 安全性与隔离性:JVM 能隔离不同的应用程序并进行权限控制,防止恶意代码破坏系统。
- 性能优化:如 JIT(即时编译器),能在运行时将热点代码编译为本地机器码,提高执行效率。
- 比较JVM、JRE、JDK
| 名称 | 全称 | 简要定义 |
|---|---|---|
| JVM | Java Virtual Machine | Java 虚拟机,用于执行字节码(.class 文件) |
| JRE | Java Runtime Environment | Java 运行环境,包含 JVM 和 Java 的核心类库 |
| JDK | Java Development Kit | Java 开发工具包,包含 JRE 以及编译器等开发工具 |

常见的JVM

JVM主要组成
- 类加载器
- 运行时数据区域
| 区域名称 | 是否线程私有 | 主要作用 |
|---|---|---|
| 程序计数器 | 是 | 记录当前线程执行的字节码行号(指令地址) |
| 虚拟机栈 | 是 | 管理方法调用、局部变量、操作数栈、返回地址等 |
| 本地方法栈 | 是 | 为本地方法(如 JNI)服务 |
| 堆(Heap) | 否 | 存放所有对象实例,垃圾收集的主要区域 |
| 方法区(Metaspace) | 否 | 存放类信息、常量池、静态变量、JIT 编译代码等 |
| 运行时常量池 | 否 | 方法区中的一部分,用于存储编译期产生的常量和符号引用 |
- 执行引擎

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Little Monste'Blog!
评论







