1、跟蹤回收:跟蹤回收的方式獨立於程序,定期運行來檢查垃圾,需要較長時間的中斷。
2、標記清除:標記清除的方式需要對程序的對象進行兩次掃描,第壹次從根(Root)開始掃描,被根引用了的對象標記為不是垃圾,不是垃圾的對象引用的對象同樣標記為不是垃圾,以此遞歸。所有不是垃圾的對象的引用都掃描完了之後。就進行第二次掃描,第壹次掃描中沒有得到標記的對象就是垃圾了,對此進行回收。
3、復制收集:復制收集的方式只需要對對象進行壹次掃描。準備壹個「新的空間」,從根開始,對對象進行掃,如果存在對這個對象的引用,就把它復制到「新空間中」。壹次掃描結束之後,所有存在於「新空間」的對象就是所有的非垃圾對象。