【面试题精讲】JVM中有哪些垃圾收集器
有时博客内容会有变动,首发博客是最新的,其他博客地址可能未同步,请认准
https://blog.zysicyj.top
在Java虚拟机(JVM)中,有以下几种常见的垃圾收集器:
Serial收集器:Serial收集器是最基本的垃圾收集器,它使用单线程进行垃圾收集。它采用"标记-复制"算法,将堆内存分为年轻代和老年代,通过复制存活对象来进行垃圾回收。Serial收集器适用于单线程环境和小型应用程序。
Parallel收集器:Parallel收集器是Serial收集器的多线程版本,它使用多个线程并行进行垃圾收集。它也采用"标记-复制"算法,但相比于Serial收集器,Parallel收集器能够更快地完成垃圾回收。Parallel收集器适用于多核处理器和需要高吞吐量的应用程序。
CMS收集器:CMS(Concurrent Mark Sweep)收集器是一种并发的垃圾收集器,它使用"标记-清除"算法来进行垃圾回收。CMS收集器通过并发标记和并发清除的方式,减少了垃圾收集导致的停顿时间。它适用于需要低延迟的应用程序。
G1收集器:G1(Garbage-First)收集器是一种面向大堆内存的垃圾收集器,它使用了分代收集和区域化内存布局的方式。G1收集器通过并发标记和并发清除的方式,以及优先回收垃圾最多的区域,来实现低延迟和高吞吐量的垃圾回收。它适用于大型应用程序和需要可预测停顿时间的应用程序。
ZGC收集器:ZGC收集器是一种低延迟的垃圾收集器,它的目标是在不超过10毫秒的停顿时间内,尽可能地回收大堆内存。ZGC收集器使用了一种称为"Region"的内存布局,将堆内存划分为多个大小相等的区域。它通过并发标记和并发清除的方式,以及读屏障和写屏障来跟踪对象的引用关系。ZGC收集器适用于需要快速响应和高吞吐量的应用程序。
Shenandoah收集器:Shenandoah收集器是一种并发的垃圾收集器,它的目标是在不超过10毫秒的停顿时间内,尽可能地回收大堆内存。Shenandoah收集器使用了一种称为"Remembered Set"的数据结构来跟踪对象的引用关系。它通过并发标记和并发清除的方式,以及读屏障和写屏障来保证垃圾收集器和应用程序的并发执行。Shenandoah收集器适用于需要快速响应和高并发的应用程序。
如果您喜欢我的内容,就点击关注吧
扫码长按关注交流群获取最新消息,免费的面试题手册即将在交流群内推出

公众号

个人微信

本文由mdnice多平台发布
【面试题精讲】JVM中有哪些垃圾收集器的更多相关文章
- 💕《给产品经理讲JVM》:垃圾收集器
前言 在上篇中,我们把 JVM 中的垃圾收集算法有了一个大概的了解,又是一个阴雨连绵的周末,宅在家里的我们又开始了新一轮的学习: 产品大大:上周末我们说了垃圾收集算法,下面是不是要讲一下这些算法的应用 ...
- 【JVM】JVM中的垃圾收集器
垃圾收集器组合 Serial+Serial Old Serial+CMS ParNew+CMS ParNew+Serial Old Paralle Scavenge + Serial Old Para ...
- 「给产品经理讲JVM」:垃圾收集算法
纠结的我,给我的JVM系列终于起了第三个名字,害,我真是太难了.从 JVM 到 每日五分钟,玩转 JVM 再到现在的给产品经理讲 JVM ,虽然内容为王,但是标题可以让更多的人看到我的文章,所以,历经 ...
- jvm系列 (二) ---垃圾收集器与内存分配策略
垃圾收集器与内存分配策略 前言:本文基于<深入java虚拟机>再加上个人的理解以及其他相关资料,对内容进行整理浓缩总结.本文中的图来自网络,感谢图的作者.如果有不正确的地方,欢迎指出. 目 ...
- jvm七种垃圾收集器
JVM_七种垃圾收集器介绍 本文中的垃圾收集器研究背景为:HotSpot+JDK7 一.垃圾收集器概述 如上图所示,垃圾回收算法一共有7个,3个属于年轻代.三个属于年老代,G1属于横跨年轻代和年老 ...
- JVM学习记录-垃圾收集器
先回顾一下上一篇介绍的JVM中常见几种垃圾收集算法: 标记-清除算法(Mark-Sweep). 复制算法(Copying). 标记整理算法(Mark-Compact). 分代收集算法(Generati ...
- 【JVM.2】垃圾收集器与内存分配策略
垃圾收集器需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 在前一节中介绍了java内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈3个区域随线程而生,随线程而灭:栈 ...
- Spark学习之路 (十四)SparkCore的调优之资源调优JVM的GC垃圾收集器
一.概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了. jvm 中,程序计数器.虚拟机栈.本 ...
- JVM内存管理---垃圾收集器
说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物.事实上,GC的历史远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态 ...
- JVM笔记(三) 垃圾收集器(2)收集算法
垃圾收集器2:收集算法 主要通过阅读<深入了解Java虚拟机>(周志明 著)和网络资源汇集而成,为本人学习JVM的笔记.同时,本文理论基于JDK 1.7版本,暂不考虑 1.8和1.9 的新 ...
随机推荐
- Mybatis 源码2——SqlSession,执行器和一级缓存
一丶 SqlSessionFactoryBuilder,SqlSessionFactory,sqlSession mybatis 获取sqlSession是通过SqlSessionFactory获取的 ...
- 文心一言 VS 讯飞星火 VS chatgpt (52)-- 算法导论6.2 4题
四.当i>A.heap-size/2 时,调用 MAX-HEAPIFY(A,i)会有什么结果? 文心一言: 当 i > A.heap-size/2 时,调用 MAX-HEAPIFY(A, ...
- 基于Llama2模型的开源模型
2023年7月18日Meta开源了Llama2,在2万亿个Token上训练,可用于商业和研究,包括从7B到70B模型权重.预训练和微调的代码.相比Llama1,Llama2有较多提升,评估结果如下 ...
- 君子不玩物丧志,亦常以借物调心,网站集成二次元网页小组件(widget)石蒜模拟器,聊以赏玩
传世经典<菜根谭>中有言曰:"徜徉于山林泉石之间,而尘心渐息:夷犹于诗书图画之内,而俗气潜消.故君子虽不玩物丧志,亦常借物调心."意思是,徜徉在林泉山石之间,能够摒弃杂 ...
- LiteOS:盘点那些重要的数据结构
摘要:本文会给读者介绍下LiteOS源码中常用的几个数据结构,包括: 双向循环链表LOS_DL_LIST,优先级队列Priority Queue,排序链表SortLinkList等. 在学习Huawe ...
- appuploader使用教程
appuploader使用教程 转载:appuploader使用教程 目录 问题解决秘籍 登录失败 don't have access,提示没权限或同意协议 上传后在app管理中心找不到版本提交 ...
- MyBatis Mapper.XML 标签使用说明
直接将值返回给对象 <select id="list" resultType="com.vipsoft.base.entity.UserInfo"> ...
- Hadoop面试题总结(二)——HDFS
1. HDFS 中的 block 默认保存几份? 默认保存3份 2.HDFS 默认 BlockSize 是多大? 默认64MB 3.负责HDFS数据存储的是哪一部分? DataNode负责数据存储 4 ...
- 用 Python 开发的 PDF 抽取Excel表格 2.0版
前些天向大家介绍了我开发的从PDF抽取表格小工具的使用方法(️点击直达),有同学反馈说有一些问题: 一页PDF有多张表,只能抽取第一个 有些表格线条是透明的,无法抽取 一页一页处理太麻烦,不能一次性抽 ...
- 用 Python 开发了一个 PDF 抽取Excel表格的小工具
大家好哇 从 PDF 里 copy 表格时,粘贴出来后格式都是错乱的.这麻烦事交给 Python 再合适不过里,我开发了一个从 PDF 抽取表格另存为 Excel 文件的应用,我把它部到 huggin ...