1.标记清除算法,分为先标记,将垃圾标记出来,再清除,将标记的垃圾进行清除,但是这种算法会造成一个严重的问题,会产生大量的内存碎片。
2.复制算法,为了解决第一种内存碎片问题,于是有了复制算法,将内存分为两块大小相等的内存,每次只是用其中的一块,垃圾回收时,将当前这一块的活对象拷贝到另一块中,然后将之前那一块清除,从而解决了内存碎片问题。但是这种算法又出现了一个新的问题,内存占用。
3.标记压缩算法,为了解决第二种的内存占用问题。首先将垃圾进行标记,然后将活对象往一端进行对齐,并有边界,将边界以外的进行清除。