基本概念

垃圾回收

垃圾回收(Garbage Collection,GC)引起大家的关注,是从1995Java发布后开始的。事实上,GC作为计算机科学领域非常热的研究话题之一,最早可以追溯到1959年的夏天,起初是用用来简化Lisp内存管理的。在接下来60余年的时间里,通过CheneyBaker等大师的不断努力,GC的世界里出现了标记清除、复制、分代、增量回收等一系列GC算法,基于这些算法,又出现了种类繁复的垃圾回收器。

GC把程序不用的内存空间视为垃圾(几乎所有的)GC要做的就只有两件事:

  • 找到内存空间里的垃圾,使其和活对象分开来。
  • 回收垃圾对象的内存,使得程序可以重复使用这些内存。

GC给我们带来的好处不言而喻,选择GC而不是手动释放资源的原因很简单:程序比人更可靠。即便是C/C++这种没有GC的语言,也有类似Boehm GC这样的第三方库来实现内存的自动管理了。可以毫不夸张地说,GC已经是现代编程语言的标配。

Links