JVM 学习专栏
在这一部分, 主要是学习JVM虚拟机的一些知识
欢迎来到我的 JVM 学习笔记专栏, 这里记录了我学习 JVM 的全过程
让我们从JVM的整体框架开始, 整理下JVM的知识
graph TD
A[Java 源代码] -->|编译| B[字节码]
B -->|类加载| C[JVM]
C --> D[类加载子系统]
C --> E[运行时数据区]
C --> F[执行引擎]
C --> G[本地方法接口]
E --> H[方法区]
E --> I[堆]
E --> J[Java 栈]
E --> K[PC 寄存器]
E --> L[本地方法栈]
F --> M[解释器]
F --> N[JIT 编译器]
F --> O[垃圾回收器]
这个图展示了JVM的主要组成部分:
- 类加载子系统: 负责加载, 链接和初始化类
- 运行时数据区:
- 方法区: 存储类结构, 常量, 静态变量等
- 堆: 存储对象实例
- Java栈: 存储局部变量和部分结果, 管理方法调用和返回
- PC寄存器: 存储当前执行指令的地址
- 本地方法栈: 用于本地方法调用
- 执行引擎:
- 解释器: 逐条解释执行字节码
- JIT编译器: 将热点代码编译成本地机器码
- 垃圾回收机制: 自动管理内存, 回收不再使用的对象
- 本地方法接口: 允许Java代码调用本地(native)方法
接下来我们分部分简单了解虚拟机
其实我对虚拟机的了解并不深入, 前后看视频十天, 算上看看文档花了两周, 仅此而已, 不过作为Java开发程序员回头我一定要好好看看, 很多地方的源码我都没有看过, 我的技术栈仅仅限于某一个技术能干什么, 解决什么问题, 怎么用, 不足之处, 找其他技术搭配结合, 仅此而已, 我还是代码路上的一只小趴菜 (一)JVM的定义和作用 (二)JVM的类加载机制