🌈hello,你好鸭,我是Ethan,西安电子科技大学大三在读,很高兴你能来阅读。
✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。
🏃人生之义,在于追求,不在成败,勤通大道。加油呀!
🔥个人主页:Ethan Yankang
🔥推荐:史上最强八股文||一分钟看完我的几百篇博客
🔥温馨提示:划到文末发现专栏彩蛋 点击这里直接传送
🔥本篇概览:详细讲解了G1回收全过程概览——垃圾收集器10🌈⭕🔥
【计算机领域一切迷惑的源头都是基本概念的模糊,算法除外】
🌈章节引出:
前一篇章:
🌈章节速览:
G1收集器垃圾回收过程
G1可以作用于整个新生代和老年代,G1的垃圾回收过程主要包括如下三个环节:
- 新生代 GC
- 老年代并发标记
- 混合回收
作为JVM的兜底逻辑,如果应用程序垃圾收集时内存不足,G1会像其他收集器一样执行 Full GC,即强力回收内存。
垃圾回收的流程如图16-17所示,按图中顺时针走向,以:
新生代GC→新生代GC+并发标记过程→混合GC顺序进行垃圾回收
首先执行新生代GC,之后执行并发标记过程,该过程会伴随着 Young GC的发生,最后执行混合 GC。
应用程序分配内存,当新生代的 Eden 区用尽时开始新生代回收过程。G1的新生代收集阶段是一个并行的独占式收集器。在新生代回收期,G1暂停所有应用程序线程,启动多线程执行新生代回收。然后从新生代区移动存活对象到Survivor 区或者老年代区,也有可能是两个区都会涉及。
当堆内存使用达到一定值(默认 45%)时,开始老年代并发标记过程。
标记完成马上开始混合回收过程。对于一个混合回收期,G1从老年代区移动存活对象到空闲区,这些空闲区也就成为老年代的一部分。G1收集器在老年代的处理方式和其他垃圾收集器不同,G1不需要回收整个老年代,一次只需要扫描/回收一小部分老年代的Region就可以了。同时,这个老年代 Region 是和新生代一起被回收的。
💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
热门专栏推荐
🌈🌈计算机科学入门系列 关注走一波💕💕
🌈🌈CSAPP深入理解计算机原理 关注走一波💕💕
🌈🌈微服务项目之黑马头条 关注走一波💕💕
🌈🌈redis深度项目之黑马点评 关注走一波💕💕
🌈🌈JAVA面试八股文系列专栏 关注走一波💕💕
🌈🌈JAVA基础试题集精讲 关注走一波💕💕
🌈🌈代码随想录精讲200题 关注走一波💕💕
总栏
🌈🌈JAVA基础要夯牢 关注走一波💕💕
🌈🌈JAVA后端技术栈 关注走一波💕💕
🌈🌈JAVA面试八股文 关注走一波💕💕
🌈🌈JAVA项目(含源码深度剖析) 关注走一波💕💕
🌈🌈计算机四件套 关注走一波💕💕
🌈🌈数据结构与算法 关注走一波💕💕
🌈🌈必知必会工具集 关注走一波💕💕
🌈🌈书籍网课笔记汇总 关注走一波💕💕
📣非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤收藏✅ 评论💬,大佬三连必回哦!thanks!!!
📚愿大家都能学有所得,功不唐捐!