更新时间:2021年03月02日15时08分 来源:传智教育 浏览次数:
标记-清除算法(Mark-Sweep)是一种非常基础和常见的垃圾收集算法,简单的说,它们找出所有不可达的对象,并将它们放入空闲列表Free,该算法被J.McCarthy等人在1960年提出并并应用于Lisp语言。
标记-清除算法分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清除阶段回收被标记的对象所占用的空间。如图
从图中我们就可以发现,该算法最大的问题是内存碎片化严重,后续可能发生大对象不能找到可利用空间的问题。
缺点
·效率不算高
·在进行GC的时候,需要停止整个应用程序,导致用户体验差
·这种方式清理出来的空闲内存是不连续的,产生内存碎片。需要维护一个空闲列表。
猜你喜欢:
下面是传智教育公开的几套Java课程,您可以下载和在线观看学习,如果想深入学习java并想找到不错的java开发相关工作,建议报班学习传智教育Java高级软件工程师课程。获取【Java视频教程+资料】加播妞:435946716。