1、标记清除法
方法:标记阶段:首先将需要进行回收的内存进行标记,清除阶段:将标记的对象进行清除
缺点:碎片化比较多,无法给大的对象分配内存;常常效率较低

2、复制算法
方法:将内存分为相等的两块,每次只使用一块内存,将这一块内存中存活的对象复制到另一块内存中,将使用过的内存进行清理;
缺点:虽然效率和碎片化问题解决了,但是当出现更多的对象存活时,复制的效率就会降低;

3、标记整理法
方法:将存活的对象移动到边界一端,然后将可回收的对象回收

4、分代收集算法
划分原则:根据不同对象的存活周期,将内存划分为新生代、老年代