内存分配与回收策略
- 对象优先在Eden分配
- 大对象直接进入老年代
- -XX:PretenureSizeThreshold大于这个设置值的对象直接在老年代分配,此参数支队Serial和ParNew两款收集器有效
- 长期存活的对象经进入老年代
- -XX:MaxTenuringThreshold经历多少次MinorGC进入老年代
- 动态对象年龄判定
- 空间分配担保
Stay foolish. Be happy.
Serial收集器
ParNew收集器
Parallel Scavenge收集器
Serial Old收集器
Parallel Old收集器
CMS收集器
G1收集器
未完待续。
引用计算法
1 | public class ReferenceCountingGC { |
1 | CommandLine flags: -XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC |
从GC日志看,对象由PSYoungGen转移至ParOldGen中。
根搜索算法
引用分级
标记-清除算法
复制算法
标记-整理算法
标记整理算法与标记—>清除算法的不同在于增加一步整理的过程:标记—>整理—>清除
分代收集算法