2012-03-27 48 views
0

我在窗口中有一个JButton“MAIN_BUTTON”。当它被点击时,它会每次启动一个新线程在线程停止后是否存在线程执行期间创建的任何对象?

反过来新创建线程调用,显示一个新的“child_window” * (使用一个构造函数和产生它的一个对象)其它类的方法 *。该窗口上有两个按钮“接受”和“拒绝”。当按下这些按钮中的任何一个时,将完成一些工作并关闭此窗口。

现在我想停止线程“CHILD_WINDOW”对象是否是破坏或它仍然存在于内存中后,就知道了。

回答

2

现在我想知道停止线程后,“CHILD_WINDOW”对象是否被销毁或者它仍然存在于内存中。

在一般情况下,答案取决于你的线程与对象的引用做了什么。如果它把它放在某个地方意味着它是“可到达的”,那么该对象将仍然存在。如果不是,它可能会停止存在,这取决于GC是否以及何时收集它。

我不完全确定在Window对象的情况下会发生什么情况。我怀疑在图形上下文(或其他东西)中可能会引用对象,这意味着Window将保持可到达状态,直到某些应用程序级代码明确关闭或处置它为止。 (否则,你会听到Swing窗口随机消失的故事......由于被垃圾收集器回收)。

相关问题