JVM垃圾回收

一、标记-清除

先把没有引用的对象标记,然后再把标记删除的对象直接清除。问题是内存碎片,可用区域不连续,稍微大的对象不能存放,空间浪费。

二、复制

把整个内存分为AB两部分,程序运行时新申请空间只能在A区域开辟,垃圾回收执行时将A区有用的对象拷贝的B区,然后把A区整体清除。问题是可用空间始终为分配空间的一半,浪费最严重。

三、标记-整理

先把没有引用的对象标记出来,然后再把有用的对象复制到集中的一侧,留下

你可能感兴趣的:(JVM垃圾回收)