我们用餐厅大厨的比喻,把C#语言的GC(垃圾回收,Garbage Collection)算法工作原理讲得生动形象、通俗易懂。
1. GC是什么?——“自动清理的餐厅”
想象你开了一家高档自助餐厅,客人们(程序员)不断点菜(new对象),吃完后桌上会留下很多餐盘、餐具(内存对象)。如果没人收拾,餐厅很快就会乱成一团,没法招待新客人(内存溢出)。
这时,你雇了一个智能清洁机器人(GC),它会定期巡视餐厅,把没人用的餐盘、餐具(无用对象)自动收走,保持餐厅整洁有序。
2. GC的基本流程——“巡视、标记、回收”
步骤一:巡视(扫描)
清洁机器人会定期巡视餐厅,看看哪些桌子上还有人在用餐(对象还被引用),哪些桌子已经没人了(对象没人引用)。
步骤二:标记(Mark)
机器人会给还在