【面试题精讲】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 的新 ...
随机推荐
- K8s和声明式编程
转载:原文链接 认识k8s之后,他的操作模式对我来说是一种很不错的体验.他提供了更接近现实世界的面向对象接口. 什么是k8s? Kubernetes(K8s)是一种开源容器编排平台,用于自动化部署.扩 ...
- node.js 命令必须加 npx 才能执行
问题描述 在 Windows 上搭建 Hexo 环境,已经从官网下载安装 node-v18.18.2-x64.msi,并且通过 npm 命令成功安装 hexo. PowerShell 中,直接执行 h ...
- js-audio-pluging(录音)
安装 npm i js-audio-recorder 代码 <template> <div class="BaseRecorder"> <div cl ...
- MindSpore!这款刚刚开源的深度学习框架我爱了!
[摘要] 本文主要通过两个实际应用案例:一是基于本地 Jupyter Notebook 的 MNIST 手写数据识别:二是基于华为云服务器的 CIFAR-10 图像分类,对开源框架 MindSpore ...
- 揭秘华为云GaussDB(for Redis)丨大key治理
本文分享自华为云社区<华为云GaussDB(for Redis)揭秘第31期:大key治理>,作者: 高斯Redis官方博客. 从DBA的视角看,大Key无疑是引起Redis线上问题的常见 ...
- 云小课 | 不了解EIP带宽计费规则?看这里!
摘要:带宽要变更, 费用不会算?要问怎么办,小课带你看! 和小课一起来学习弹性公网IP(EIP)带宽的计费方式.使用场景及变更影响吧~ 在使用弹性公网IP(EIP)产品后,你是否遇到过以下几种场景: ...
- 云小课 | 玩转HiLens Studio之手机实时视频流调试代码
摘要:在开发技能过程中,搭配视频流调试技能是非常必要的环节,也是检验技能效果的重要环节.HiLens Studio推出使用手机实时视频流调试代码的功能,以手机摄像头实时的视频流作为技能输入,查看技能输 ...
- 云图说|初识云数据库GaussDB(for Redis)
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:云数据库Gauss ...
- 从应用看火山引擎 AB 测试 (DataTester) 的最佳实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文将从外部用户的角度介绍 A/B 测试平台的最佳实践.分享分为四部分,首先整体介绍 A/B 测试的应用场景,接下 ...
- Snack3 3.1.10的新特性及应用
<dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId& ...