Java知识点
2020-03-17 17:58:51 0 举报
AI智能生成
Java中垃圾收集的一些概念
作者其他创作
大纲/内容
垃圾回收(GC)
对象存活判断
引用计数
判断对象引用数量,新增加1,释放减1,为0回收
特点:简单、不能解决对象循环引用问题
可达性分析
判断对象的引用链是否可达
垃圾回收类型
Minor GC
对新生代回收
Full GC
对整个堆回收
垃圾回收算法
标记-清除法
优点:简单实现,容易理解
缺点:时间效率低、空间内存碎片多
复制法
优点:无碎片问题、实现简单、运行高效、适合新生代
缺点:内存缩小为原来的一半,持续复制长生存期的对象则导致效率降低。
标记-压缩法
优点:无碎片问题、无内存减半问题、适合老年代
缺点:不适合频繁更替、不适合新生代
分代收集法
优点:因代而异,不同代不同算法处理
新生代:复制法;老年代:标记-清除法或者标记-整理法
垃圾回收器
回收新生代的收集器
Serial
串行回收、古老、稳定、效率高
新生代:复制法;老年代:标记-压缩法
ParNew
新生代:并行;老年代:串行
新生代:复制法、老年代:标记-压缩法
多线程执行
Parallel Scavenge
与parNew类似,但是更注重吞吐量
回收老年代的收集器
Serial Old
Serial的老年代版本。串行,标记-压缩法
Parallel Old
Parallel的老年代版本。多线程、标记-压缩法
CMS
以获取最短回收停顿时间为目标的收集器
初始标记-并发标记-重新标记-并发清除
特点
优点:并发收集,低停顿
缺点:产生大量碎片,并发阶段降低吞吐量
回收整个Java堆的收集器
G1
空间整合
采用标记-压缩法
可预测停顿
建立可预测停顿模型
内存分配与回收策略
对象优先放Eden区
当Eden区没有足够空间进行分配时,虚拟机将发起一次minor GC
大对象放老年区
比如长字符串、数组等
年龄长的对象移到老年区
minor GC超过默认次数(15)被认为年老对象
动态对象年龄判断
相同年龄所有对象占一半多,以该年龄划分年老和年轻
by AthenaHe
0 条评论
回复 删除
下一页