~~牛马都能看懂的~~GC原理介绍

本文不要求你有任何高深的底层知识,本文的书写宗旨是让一个牛马都能看懂GC的基本原理

故事

首先,想象你是一个大学生,和三个舍友一起住在一间宿舍里。你们四个人都有自己的床,自己的书桌,自己的衣柜,自己的书架,自己的电脑,自己的手机,自己的鞋柜,自己的鞋子,自己的衣服。。。

一切都很美好,直到你们发现你们的宿舍里的垃圾日益变多,整个宿舍变得更加脏乱,逐渐不适宜居住了。于是你们决定开始定期清理垃圾。

怎么定义一个物品是不是垃圾呢?你们想了一种方法:以每个人为原点出发,寻找所有你可能直接 使用的物品,然后再从这些物品出发,寻找所有这些物品可能会用到的其他物品,依此类推,直到所有直接或间接可能被使用的物品 都被找到,剩下的物品就是不会再被用到的物品,也就是垃圾。

位了清理垃圾,一开始你们选择值日制度,每天轮流值日,值日的人负责清理宿舍里的垃圾,清理完毕后,将垃圾扔到宿舍外的垃圾桶里。这样,宿舍里的垃圾就被清理干净了,宿舍也变得干净了。

但是后来你们发现这样做有一个问题,就是每天都要有人值日,而且值日的人要花费很多时间清理垃圾,而且有些人垃圾多 有些人垃圾少,垃圾少的人和垃圾多的人都要花费同样的时间清理垃圾,这样就不公平了。于是你们决定改进一下,改成 每个人都有自己的垃圾桶,所有人都可以随时清理自己的垃圾,这样就不用每天都有人值日了,而且每个人清理垃圾的时间 也可以岔开,对于大家都方便。

这套机制稳定的运行了一段时间,直到你们发现宿舍里有一个人特别的懒,他从来不清理自己的垃圾,他的 垃圾逐渐堆积,甚至有时候会散布到宿舍的其他地方,这样宿舍里的垃圾又开始变多了,宿舍又变得脏乱了。

这个时候宿舍里一个有洁癖的人就受不了了,他帮助懒人清理了他的垃圾,然而懒人发现之后 非但没有感谢,反而指责他丢掉了他还要继续使用的东西。两人爆发了严重的争吵。

最后为了避免这个问题,宿舍经过讨论找到了一个完美的解决方案:每个人在不方便清理自己垃圾的时候,都需要 请一个保姆来代替自己清理垃圾,在自己方便的时候再把保姆送走。

最后,你们宿舍终于变成了一个高效、少吵架的宿舍。

问题

这个故事里的意象都象征着什么?你看懂了吗?