1.1 什么是JVM
定义:JVM(Java Virtual Machine)即Java虚拟机,是Java程序的运行环境,准确的说是Java二进制字节码的运行环境。
好处:
- 屏蔽了不同平台之间的差异,实现一次编写,到处运行
- 自动内存管理,实现垃圾回收功能
- 实现数组下标越界检查
- 实现多态
JDK、JRE、JVM之间的关系:
开发JavaEE程序(JDK + 应用服务器 + IDE工具)
开发JavaSE程序(JDK + IDE工具)
JDK(JRE + 编译工具)
JRE(JVM + 基础类库)
JVM
操作系统(Windows、MacOS、Linux、Unix…)
1.2 学JVM的意义
- 提高面试竞争力
- 理解底层实现原理,掌握字节码相关知识
- 中高级Java程序员的必备技能
1.3 JVM知识点大纲及学习路线
知识点大纲:
- 类加载器
- Java Class
- ClassLoader
- JVM内存结构
- Method Area 方法区
- Heap 堆区
- JVM Stacks 虚拟机栈
- PC Register 程序计数器
- Native Method Stacks 本地方法栈
- 执行引擎
- Interpreter 解释器
- JIT Compiler 即时编译器
- GC 垃圾回收器
推荐的学习路线:
- JVM内存结构
- GC垃圾回收原理
- Java Class 字节码结构及优化
- Class Loader 类加载器
- JIT Compiler 即时编译器
- Interpreter 字节码解释器