“深入理解JVM:垃圾收集器与内存分配策略”的版本间差异

来自Wikioe
跳到导航 跳到搜索
第52行: 第52行:


== 内存分配与回收策略 ==
== 内存分配与回收策略 ==
 大对象优先在Eden分配
3.8.2 大对象直接进入老年代
3.8.3 长期存活的对象将进入老年代
3.8.4 动态对象年龄判定
3.8.5 空间分配担保

2020年10月24日 (六) 02:09的版本


概述

垃圾收集(Garbage Collection,GC),并非Java语言的伴生产物。


垃圾收集需要完成的三件事情:

  1. 哪些内存需要回收?
  2. 什么时候回收?
  3. 如何回收?

 

对象已死?

3.2.1 引用计数算法 3.2.2 可达性分析算法 3.2.3 再谈引用 3.2.4 生存还是死亡? 3.2.5 回收方法区

垃圾收集算法

3.3.1 分代收集理论 3.3.2 标记-清除算法 3.3.3 标记-复制算法 3.3.4 标记-整理算法

HotSpot的算法细节实现

3.4.1 根节点枚举 3.4.2 安全点 3.4.3 安全区域 3.4.4 记忆集与卡表 3.4.5 写屏障

经典垃圾收集器

3.5.1 Serial收集器 3.5.2 ParNew收集器 3.5.3 Parallel Scavenge收集器 3.5.4 Serial Old收集器 3.5.5 Parallel Old收集器 3.5.6 CMS收集器 3.5.7 Garbage First收集器

低延迟垃圾收集器

3.6.1 Shenandoah收集器 3.6.2 ZGC收集器

选择合适的垃圾收集器

3.7.1 Epsilon收集器 3.7.2 收集器的权衡 3.7.3 虚拟机及垃圾收集器日志 3.7.4 垃圾收集器参数总结

内存分配与回收策略

 大对象优先在Eden分配 3.8.2 大对象直接进入老年代 3.8.3 长期存活的对象将进入老年代 3.8.4 动态对象年龄判定 3.8.5 空间分配担保