public class Test { public static void main(String[] args) { A a = new A(); B b = a.getB(); a = null; // 对象a能否回收? while (true) { b.newObject(); } // ... } } class A { private int i; private B b; A() { b = new B(); } public B getB() { return b; } } class B { private int i; public void newObject() { new String("for use up the memory"); } } 如果不能回收,那么程序中的getXXX()方法简单地返回一个对象的引用都属于危险行为,因为外部使用者未必会去注意消除这种引用。 究竟能不能回收? (未完,待续)