GC的三種主要算法
- 標記-清除
- 複製
- 標記-整理
1.標記-清除
基本思路:算法分爲標記和清除兩個階段, 首先標記所有要回收的對象,然後在清除階段統一回收。
優缺點:
1. 效率問題,標記清除階段效率都不高。
2. 空間問題,清除後產生大量不連續的內存碎片,不利於大對象內存的分配
2.複製
基本思路:將內存分爲大小相等的兩塊,只使用其中的一塊,當這塊內存用完了,就把這塊上存活的對象複製到另一塊, 然後將已滿的那塊一次性清理掉。
優缺點:
1. 實現簡單,運行高效
2. 可使用空間爲原來一半,空間犧牲太大
3.標記-整理
基本思路: 先標記出可回收內存,然後讓所有存活的對象都向一段移動, 然後直接清理掉邊界以外的內存。
* 優缺點:*
1.不適用與可回收內存較多,頻繁的情況
所有的方法都其優劣之處,針對不同的情況和需求,選擇最合適的方法。