1. Overview
2. JVM架构体系
1) 垃圾回收
- 对象存活性判断
- 垃圾回收算法
- 垃圾回收器(回收算法的具体实现)
2) 类装载子系统
- 启动类加载器
- 扩展类加载器
- 应用程序类加载器
- 自定义类加载器
3) 执行引擎
- 解释器
- 即时编译器
4) 运行时数据区
- 堆Heap
- 方法区
- 程序计数器
- 虚拟机栈
- 本地方法栈
3. 垃圾回收器开启命令
4. Reference
Java虚拟机Java virtual machine(JVM) 是物理机器的软件实现。java编译器javac将源码文件.java编译成字节码文件.class,然后这个字节码文件.class被放到JVM中,装载并执行字节码文件.class。JVM架构图如下。
JVM Architecture
判断对象是否存活,可达性检测
垃圾回收算法
回收器类型
类装载子系统(classloader sub-system):定位和导入二进制class文件,校验导入类的正确性,为类变量分配并初始化内存,解析符号引用
class MyClassLoader extends ClassLoader
application classloader -> extension classloader -> bootstrap classloader
执行引擎(execution engine):执行classloader中的方法指令
即,源码/源代码/Source code/.java -> 字节码/Bytecode/.class -> 机器码/Machine code/原生码/Native Code
运行时数据区(runtime data areas):JVM运行时需要从整个计算机内存中划出一块内存区域存储jvm需要用到的东西
Command line | 新生代gc模式 | 老年代gc模式 |
---|---|---|
-XX:+UseSerialGC | serial串行回收器 | serialOld串行回收器 |
-XX:+UseParNewGC | parNew并行回收器 | default |
-XX:+UseParallelGC | parallel并行回收器 | default |
-XX:+UseParallelOldGC | default | parallel并行回收器 |
-XX:+UseConcMarkSweepGC | default | CMS并行回收器 |
-XX:+UseG1GC | G1回收器 | G1回收器 |
根据上表新生代与老年代的gc模式互为搭配一起为垃圾回收器服务。
本文作者是chenfh5,根据所读过的书和博客整理而成。
——END——