- 标记清除算法: 根据可达性算法判断哪些对象可以回收,将其标记,然后回收。也可以标记存活的对象,统一回收未被标记的对象。
- 缺点:内存碎片化问题,导致较大内存对象无法找到连续足够的内存,从而导致另外一次垃圾回收。
2.标记复制算法:将内存一分为二,每次只用一块,当这块内存满了,就把活着的对象移到另外一块内存,然后把之前的内存空间直接清理掉。
- 缺点:
如果内存大部分是活着的对象,会产生大量的内存间复制的开销。
内存一分为二,空间来说太浪费了。
3.标记整理算法
标记整理是在标记清除算法上,加了一个移动。让所用存活的对象向一端移动,并且进行整理成一片连续的内存。
不会造成,内存碎片化。