首页 > 编程语言 >第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】

第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】

时间:2022-10-16 17:07:04浏览次数:61  
标签:面试题 收集器 回收 算法 GC 垃圾 线程


第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】

前言


2022 10/13 13:14

路漫漫其修远兮,吾将上下而求索


本文是根据尚硅谷学习所做笔记

仅供学习交流使用,转载注明出处



6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈

说明

本文目录前是相关视频的名字和具体视频中思维导图的名字

题目

6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈

GC算法(引用计数/复制/标清/标整)是内存回收的方法论,垃圾收集器就是算法落地实现。

天上飞的理念,要有落地的实现(垃圾收集器就是GC垃圾回收算法的实现)

GC算法是内存回收的方法论,垃圾收集器就是算法的落地实现

GC算法主要有以下几种

引用计数(几乎不用,无法解决循环引用的问题)
复制拷贝(用于新生代)
标记清除(用于老年代)
标记整理(用于老年代)

因为目前为止还没有完美的收集器出现,更加没有万能的收集器,只是针对具体应用最合适的收集器,进行分代收集

那个代用什么收集器

4种主要垃圾收集器

  • Serial:串行回收 -XX:+UseSeriallGC
  • Parallel:并行回收 -XX:+UseParallelGC
  • CMS:并发标记清除
  • G1
  • ZGC:(java 11 出现的)
  • 第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】_算法

串行垃圾回收器(Serial)

串行垃圾回收器,它为单线程环境设计且值使用一个线程进行垃圾收集,会暂停所有的用户线程,只有当垃圾回收完成时,才会重新唤醒主线程继续执行。所以不适合服务器环境

第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】_垃圾回收器_02

STOP THE WORLD

并行垃圾回收器(Parallel)

并行垃圾收集器,多个垃圾收集线程并行工作,此时用户线程也是阻塞的,适用于科学计算 / 大数据处理等弱交互场景,也就是说Serial 和 Parallel其实是类似的,不过是多了几个线程进行垃圾收集,但是主线程都会被暂停,但是并行垃圾收集器处理时间,肯定比串行的垃圾收集器要更短

第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】_算法_03

并发垃圾回收器(CMS)

并发标记清除,用户线程和垃圾收集线程同时执行(不一定是并行,可能是交替执行),不需要停顿用户线程,互联网公司都在使用,适用于响应时间有要求的场景。并发是可以有交互的,也就是说可以一边进行收集,一边执行应用程序。

第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】_算法_04

上述3个小总结,G1特殊后面说

第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】_垃圾收集器_05

G1垃圾回收器

G1垃圾回收器将堆内存分割成不同区域,然后并发的进行垃圾回收

第二季:6.GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈【Java面试题】_垃圾收集器_06

最后


2022 10/13 13:31


p88~p89


Markdown 1746 字数 118 行数
HTML 1244 字数 45 段落



标签:面试题,收集器,回收,算法,GC,垃圾,线程
From: https://blog.51cto.com/u_15719556/5760406

相关文章