1、标记清除法
方法:标记阶段:首先将需要进行回收的内存进行标记,清除阶段:将标记的对象进行清除
缺点:碎片化比较多,无法给大的对象分配内存;常常效率较低
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8313ca7cd77c0b5ff42b88ea02dac913.png)
2、复制算法
方法:将内存分为相等的两块,每次只使用一块内存,将这一块内存中存活的对象复制到另一块内存中,将使用过的内存进行清理;
缺点:虽然效率和碎片化问题解决了,但是当出现更多的对象存活时,复制的效率就会降低;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b4d78d0ab8663dbb0097071f524ed81d.png)
3、标记整理法
方法:将存活的对象移动到边界一端,然后将可回收的对象回收
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4d487c56c40f834f05963b8e1f3b860f.png)
4、分代收集算法
划分原则:根据不同对象的存活周期,将内存划分为新生代、老年代