与其吃瓜黑吃黑,不如预测回收垃圾
本文主要内容:G1垃圾收集器的回收过程&&原理
今日总结
G1垃圾收集器特点:
从原来的「物理」分代,变成现在的「逻辑」分代,将堆内存「逻辑」划分为多个Region 使用CSet来存储可回收Region的集合 使用RSet来处理跨代引用的问题(注意:RSet不保留 年轻代相关的引用关系) G1可简单分为:Minor GC 和Mixed GC以及Full GC 【Eden区满则触发】Minor GC 回收过程可简单分为:(STW) 扫描 GC Roots、更新&&处理Rset、复制清除 全局并发标记的过程跟CMS过程差不多:初始标记(STW)、并发标记、最终标记(STW)以及清理(STW) 【整堆空间占一定比例则触发】Mixed GC 依赖「全局并发标记」,得到CSet(可回收Region),就进行「复制清除」 使用SATB算法来处理「并发标记」阶段对象引用存在变更的问题 亮点&&重点:提供可停顿时间参数供用户设置(G1会尽量满足该停顿时间来调整 GC时回收Region的数量) R大描述G1原理的时候,他提到:从宏观的角度看G1,主要分为两块「全局并发标记」和「拷贝存活对象」
【对线面试官】Java注解 【对线面试官】Java泛型 【对线面试官】 Java NIO 【对线面试官】Java反射 && 动态代理 【对线面试官】多线程基础 【对线面试官】 CAS 【对线面试官】synchronized 【对线面试官】AQS&&ReentrantLock 【对线面试官】线程池 【对线面试官】ThreadLocal 【对线面试官】CountDownLatch和CyclicBarrier 【对线面试官】为什么需要Java内存模型? 【对线面试官】深入浅出 Java 内存模型 【对线面试官】Java从编译到执行,发生了什么? 【对线面试官】双亲委派机制 【对线面试官】JVM内存结构 【对线面试官】垃圾回收机制 【对线面试官】CMS垃圾回收器 【对线面试官】List 【对线面试官】Map 【对线面试官】SpringMVC 【对线面试官】Spring基础 【对线面试官】SpringBean生命周期 【对线面试官】Redis基础 【对线面试官】Redis持久化 【对线面试官】Kafka基础 【对线面试官】使用Kafka会考虑什么问题? 【对线面试官】MySQL索引 【对线面试官】MySQL 事务&&锁机制&&MVCC 【对线面试官】MySQL调优
文章以纯面试的角度去讲解,所以有很多的细节是未铺垫的。
鉴于很多同学反馈没看懂【对线面试官】系列,基础相关的知识我确实写过文章讲解过啦,但有的同学就是不爱去翻。
我把这些上传到网盘,你们有需要直接下载就好了。
评论