标记-清除算法(Mark-Sweep)是一种非常基础和常见的垃圾收集算法,简单的说,它们找出所有不可达的对象,并将它们放入空闲列表Free,该算法被J.McCarthy等人在1960年提出并并应用于Lisp语言。
标记-清除算法分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清除阶段回收被标记的对象所占用的空间。如图
从图中我们就可以发现,该算法最大的问题是内存碎片化严重,后续可能发生大对象不能找到可利用空间的问题。
缺点
·效率不算高
·在进行GC的时候,需要停止整个应用程序,导致用户体验差
·这种方式清理出来的空闲内存是不连续的,产生内存碎片。需要维护一个空闲列表。
猜你喜欢:
课程。获取【Java视频教程+资料】加播妞:435946716。
-
Java教程
-
Java教程
-
Java教程
-
Java教程
-
Java教程
-
Java教程
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253787.html