有时博客内容会有变动,首发博客是最新的,其他博客地址可能未同步,请认准https://blog.zysicyj.top

首发博客地址

系列文章地址


在Java虚拟机(JVM)中,有以下几种常见的垃圾收集器:

  1. Serial收集器:Serial收集器是最基本的垃圾收集器,它使用单线程进行垃圾收集。它采用"标记-复制"算法,将堆内存分为年轻代和老年代,通过复制存活对象来进行垃圾回收。Serial收集器适用于单线程环境和小型应用程序。

  2. Parallel收集器:Parallel收集器是Serial收集器的多线程版本,它使用多个线程并行进行垃圾收集。它也采用"标记-复制"算法,但相比于Serial收集器,Parallel收集器能够更快地完成垃圾回收。Parallel收集器适用于多核处理器和需要高吞吐量的应用程序。

  3. CMS收集器:CMS(Concurrent Mark Sweep)收集器是一种并发的垃圾收集器,它使用"标记-清除"算法来进行垃圾回收。CMS收集器通过并发标记和并发清除的方式,减少了垃圾收集导致的停顿时间。它适用于需要低延迟的应用程序。

  4. G1收集器:G1(Garbage-First)收集器是一种面向大堆内存的垃圾收集器,它使用了分代收集和区域化内存布局的方式。G1收集器通过并发标记和并发清除的方式,以及优先回收垃圾最多的区域,来实现低延迟和高吞吐量的垃圾回收。它适用于大型应用程序和需要可预测停顿时间的应用程序。

  5. ZGC收集器:ZGC收集器是一种低延迟的垃圾收集器,它的目标是在不超过10毫秒的停顿时间内,尽可能地回收大堆内存。ZGC收集器使用了一种称为"Region"的内存布局,将堆内存划分为多个大小相等的区域。它通过并发标记和并发清除的方式,以及读屏障和写屏障来跟踪对象的引用关系。ZGC收集器适用于需要快速响应和高吞吐量的应用程序。

  6. Shenandoah收集器:Shenandoah收集器是一种并发的垃圾收集器,它的目标是在不超过10毫秒的停顿时间内,尽可能地回收大堆内存。Shenandoah收集器使用了一种称为"Remembered Set"的数据结构来跟踪对象的引用关系。它通过并发标记和并发清除的方式,以及读屏障和写屏障来保证垃圾收集器和应用程序的并发执行。Shenandoah收集器适用于需要快速响应和高并发的应用程序。

如果您喜欢我的内容,就点击关注吧

扫码长按关注交流群获取最新消息,免费的面试题手册即将在交流群内推出

公众号

个人微信

本文由mdnice多平台发布

【面试题精讲】JVM中有哪些垃圾收集器的更多相关文章

  1. 💕《给产品经理讲JVM》:垃圾收集器

    前言 在上篇中,我们把 JVM 中的垃圾收集算法有了一个大概的了解,又是一个阴雨连绵的周末,宅在家里的我们又开始了新一轮的学习: 产品大大:上周末我们说了垃圾收集算法,下面是不是要讲一下这些算法的应用 ...

  2. 【JVM】JVM中的垃圾收集器

    垃圾收集器组合 Serial+Serial Old Serial+CMS ParNew+CMS ParNew+Serial Old Paralle Scavenge + Serial Old Para ...

  3. 「给产品经理讲JVM」:垃圾收集算法

    纠结的我,给我的JVM系列终于起了第三个名字,害,我真是太难了.从 JVM 到 每日五分钟,玩转 JVM 再到现在的给产品经理讲 JVM ,虽然内容为王,但是标题可以让更多的人看到我的文章,所以,历经 ...

  4. jvm系列 (二) ---垃圾收集器与内存分配策略

    垃圾收集器与内存分配策略 前言:本文基于<深入java虚拟机>再加上个人的理解以及其他相关资料,对内容进行整理浓缩总结.本文中的图来自网络,感谢图的作者.如果有不正确的地方,欢迎指出. 目 ...

  5. jvm七种垃圾收集器

    JVM_七种垃圾收集器介绍   本文中的垃圾收集器研究背景为:HotSpot+JDK7 一.垃圾收集器概述 如上图所示,垃圾回收算法一共有7个,3个属于年轻代.三个属于年老代,G1属于横跨年轻代和年老 ...

  6. JVM学习记录-垃圾收集器

    先回顾一下上一篇介绍的JVM中常见几种垃圾收集算法: 标记-清除算法(Mark-Sweep). 复制算法(Copying). 标记整理算法(Mark-Compact). 分代收集算法(Generati ...

  7. 【JVM.2】垃圾收集器与内存分配策略

    垃圾收集器需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 在前一节中介绍了java内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈3个区域随线程而生,随线程而灭:栈 ...

  8. Spark学习之路 (十四)SparkCore的调优之资源调优JVM的GC垃圾收集器

    一.概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了. jvm 中,程序计数器.虚拟机栈.本 ...

  9. JVM内存管理---垃圾收集器

    说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物.事实上,GC的历史远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态 ...

  10. JVM笔记(三) 垃圾收集器(2)收集算法

    垃圾收集器2:收集算法 主要通过阅读<深入了解Java虚拟机>(周志明 著)和网络资源汇集而成,为本人学习JVM的笔记.同时,本文理论基于JDK 1.7版本,暂不考虑 1.8和1.9 的新 ...

随机推荐

  1. Windows下使用图形化的Havoc C2

    Windows下使用图形化的Havoc C2 前言 这几天用goland去连虚拟机去coding真的心累,想着搞个wsl算了虽然测试又变麻烦了(wsl2和VMware一起开有问题,可能保存不了快照), ...

  2. 【OpenCV】在MacOS上源码编译OpenCV

    前言 在做视觉任务时,我们经常会用到开源视觉库OpenCV,OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLA ...

  3. git blame 用法小记

    1.概述 git管理的代码仓库,在协作开发中不可避免地会出现代码冲突,或者有新手错误地提交代码.出现问题不可怕,可怕的是找不到问题出在哪里.有时候找到出问题的代码,却不知道是谁提交的.git提供了一个 ...

  4. 华为云GaussDB助力工商银行、华夏银行斩获“十佳卓越实践奖”

    近日,2023金融街论坛年会在北京成功举办.活动期间,由北京金融科技产业联盟举办的全球金融科技大会系列活动--分布式数据库金融应用研究与实践大赛获奖结果正式公布.其中,由华为云GaussDB参与支持的 ...

  5. 看这里!带你快速体验MindSpore V1.0(For ubuntu 18.04)

    摘要: 本文介绍了如何在Ubuntu 18.04上安装CPU版本的MindSpore V1.0.并使用安装好的MindSpore进行了LeNet的模型训练. Part One:引言 在HC2020大会 ...

  6. 深度解析9种ScheduledThreadPoolExecutor的构造方法

    摘要:今天我们就来一起手撕ScheduledThreadPoolExecutor类的源代码. 本文分享自华为云社区<深度解析ScheduledThreadPoolExecutor类的源代码> ...

  7. 一起玩转玩转LiteOS组件:Opus

    摘要:Opus编码器是一个开源的有损声音编码格式,适用于网络实时声音传输,标准格式为RFC 6716,相对于其他编码格式来说,保真性更好. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Opu ...

  8. 中断操作:AbortController学习笔记

    前端面试一般喜欢问: 请手写一个带取消功能的延迟函数,axios 取消功能的原理是什么? 如何中断请求fetch的原理分析和应用? 在看来<使用 AbortController 终止 fetch ...

  9. Jenkins Pipeline 流水线 - 完整构建 Pipeline Script 脚本

    Docker Jenkins 安装配置 Windows 2016 安装 Jenkins 前置条件可参考 Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包 Jen ...

  10. Redis 数据一致性

    概述 当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况 理论上可 ...