重新分配对象引用变量是否会杀死旧对象?

Ian*_*Ian -1 java swing garbage-collection

如果我有一个类,CatFrame那扩展了JFrame然后我设置myCat = new CatFrame();然后我做myCat = new CatFrame(false);.旧的CatFrame是否有资格进行垃圾回收?

public class CatFrame extends JFrame{
    public CatFrame(){
         this.setVisible(false);
    }

public CatFrame(boolean b){
         this.setVisible(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

Con*_*Del 8

你需要注意扩展Window的Swing组件,比如JFrame和JDialog,因为它们具有不会被垃圾收集的对等组件.要正确gc窗口,请使用Window.dispose();

但是,否则,一旦从任何活动线程无法访问堆上的对象,该对象就有资格进行垃圾回收