一、JVM规范的实现
- Hotspot
- JRockit
- J9
- Zing
二、判断垃圾的方法
2.1引用计数法
2.2可达性算法
从根对象出发,无法到达的则是垃圾
根对象包含:
- 栈中引用的对象
- 类静态属性引用的对象
- 常量引用的对象
- Native方法引用的对象
三、回收算法
3.1标记清除算法
3.2复制算法(用于新生代)
新生代15次存活,则移到老年代
3.3标记压缩算法(即碎片整理算法,用于老年代)
将保留的对象移到内存区域统一的一侧,然后清理其它部分
四、JDK1.8 JVM图示
五、垃圾收集器历史版本
JDK9 G1成为默认的垃圾收集器,后来更新为ZGC