垃圾回收算法的话有三个,第一个是标记清除,标记一些不可达的对象,然后将判定为死亡的对象依次抹掉。它可能会因为这种使用会造成很多的内存碎片,并且当它对象是比较大的时候,它的标记效率是比较低的。第二种是标记复制,就是将我们的堆划分为两块,然后在GC的时候将一些活动对象直接复制到另一半,然后把之前那边抹掉,它的缺点 就是它会造成你的内存大小降低,但它的好处是不会产生内存碎片。第三个就是标记整理,嗯,每次就是使用一块区域,将一些已经死亡的对象,往一端移动,再把它们清理掉,就可以找出一块区域来存放新的对象了。主要是这三种垃圾回收算法。