常见的垃圾回收算法:

标记清除算法https://juejin.cn/post/6844903641791348744

标记清除算法缺点:

写时复制(copy-on-write)是众多 UNIX 操作系统用到的内存优化的方法。比如在 Linux 系统中使用 fork() 函数复制进程时,大部分内存空间都不会被复制,只是复制进程,只有在内存中内容被改变时才会复制内存数据。

但是如果使用标记清除算法,这时内存会被设置标志位等同于改动了数据。这时候 “ 写时复制技术 ” 会判断对象已经被改动,从空闲内存中写入新的对象并改写原指针。因此会频繁发生不应该发生的复制。

解决方案:使用位图(bitmap)标记法,就可以兼容了!

延迟清除法(Lazy Sweep)是缩减因清除操作而导致的最大暂停时间的方法。在传统的标记清除算法中,标记和清除是依次进行的,即先标记所有的活动对象,然后再清除未标记的对象。而延迟清除法则将清除阶段延迟到下一次的标记阶段之后进行,以减少清除操作对应用程序的影响。