JVM篇(一):初识JVM
JVM概述
JVM(Java Virtual Machine,Java虚拟机)是一个虚拟化的计算环境,负责执行Java字节码并提供运行Java程序所需的系统资源,它是Java平台的一部分,能够使Java程序具有跨平台的特性,实现“一次编写,到处运行”。
JVM工作流程
编译阶段: 从源代码到字节码
- 首先是我们熟悉的 .java 格式的文件(即 Java 源代码),通过
javac编译器编译成 .class 文件(即 Java 字节码) - Java 字节码是 JVM 能识别的 “通用指令集”
类加载阶段: 将字节码载入JVM
Class Loader(类加载器)
负责将 .class 文件加载到 JVM 中,完成”加载、链接、初始化”三个步骤,最终把类的信息存到 JVM 的内存区域
JVM运行时数据区(核心区域)
信息
运行时数据区为 JVM 在运行时使用的内存结构,该区域为 JVM 的核心区域,通常 JVM 的内存模型主要就是指的该区域。主要包含以下5个组件:
- Heap: 堆
- Method Area: 方法区
- Program Counter Register: 程序计数器
- Java Stack: Java虚拟机栈
- Native Methd Stack: 本地方法栈
执行与本地方法调用
Execution Engine(执行引擎)
负责执行.class 里的字节码,可以是“解释执行”或“即使编译(JIT)”执行过程中会和运行时数据区交互。
- 解释器(Interpreter): 将字节码解释称机器码逐条执行,但效率较低。
- 即时编译器(JIT Compiler): 将热点代码编译成机器码,提高执行效率。
Native Interface(本地接口)
如果需要调用 Native Method(本地方法,比如C/C++写的方法) ,会通过本地接口作为桥梁,让 JVM 具备调用非 Java 实现的源码。
Java栈、本地方法栈、程序计数器不会有垃圾回收,否则程序会死掉。百分之99的JVM调优都是在方法区和堆(99%是堆)中调优,Java栈、本地方法栈、程序计数器不会有垃圾的存在。
- 标题: JVM篇(一):初识JVM
- 作者: Lazzz
- 创建于 : 2025-11-20 19:25:39
- 更新于 : 2025-12-12 17:36:50
- 链接: https://blog.bukkitmc.cn/posts/6de0a13d/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论