10.8 垃圾收集
10.6 节说明了多个变量指向同一个对象会带来的后果。如果一个对象没有被任何变量指向,结果将如何呢?
Point blank = new Point(3, 4);blank = null;
第 1 行创建了一个新的 Point 对象,并让 blank 指向它;第 2 行修改变量 blank,使其不指向任何对象。在状态图中,变量 blank 和这个 Point 对象之间的箭头将被删除,如图 10-7 所示。

图 10-7:将变量设置为 null 效果的状态图
对于未被任何变量指向的对象,则无法访问其属性,也无法对其调用方法。在程序员看来,这样的对象已不复存在,但它依然驻留在计算机内存中,占据着内存空间。
系统会在程序运行时自动查找并回收无主对象;再将它们占据的空间用于存储新对象。这个过程被称为垃圾收集(garbage collection)。
垃圾收集是自动进行的,你什么都不用做,一般都意识不到垃圾收集过程的存在。但在高性能应用程序中,你可能时不时地会注意到些微的延迟,这是因为 Java 在回收被丢弃的对象所占据的空间。
