从this thread开始,即使程序员没有对某个对象(无法访问)的剩余引用,我也知道它,它可能还没有准备好进行垃圾回收。尚未连接但尚未加入的Thread
尚未加入,就是这样一个例子。我的问题是:是一个尚未关闭的JFrame
尚未关闭(因此,仍然有一个工作和可见的GUI界面)准备垃圾收集?如果答案是肯定的,这种行为是否会中断或强制关闭GUI界面?例如,以下代码片段取自 Java:初学者指南一书:
class SwingDemo {
SwingDemo() {
JFrame jfrm = new JFrame("A Simple Swing Application");
jfrm.setSize(275, 100);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel jlab = new JLabel(" Swing defines the modern Java GUI.");
jfrm.add(jlab);
jfrm.setVisible(true);
}
...
}
请注意,JFrame
构造函数返回时,无法再访问创建的SwingDemo
对象。
答案 0 :(得分:2)
您的一个假设是错误的:JFrame 可达,一种方式是通过Windows#getWindows()。关于此方法的JVM:
返回由此应用程序创建的所有Windows(包括拥有者和无主人)的数组。如果从applet调用,则该数组仅包含该applet可访问的Windows。