2012-03-27 46 views
0

我在窗口中有一個JButton「MAIN_BUTTON」。當它被點擊時,它會每次啓動一個新線程在線程停止後是否存在線程執行期間創建的任何對象?

反過來新創建線程調用,顯示一個新的「child_window」 * (使用一個構造函數和產生它的一個對象)其它類的方法 *。該窗口上有兩個按鈕「接受」和「拒絕」。當按下這些按鈕中的任何一個時,將完成一些工作並關閉此窗口。

現在我想停止線程「CHILD_WINDOW」對象是否是破壞或它仍然存在於內存中後,就知道了。

回答

2

現在我想知道停止線程後,「CHILD_WINDOW」對象是否被銷燬或者它仍然存在於內存中。

在一般情況下,答案取決於你的線程與對象的引用做了什麼。如果它把它放在某個地方意味着它是「可到達的」,那麼該對象將仍然存在。如果不是,它可能會停止存在,這取決於GC是否以及何時收集它。

我不完全確定在Window對象的情況下會發生什麼情況。我懷疑在圖形上下文(或其他東西)中可能會引用對象,這意味着Window將保持可到達狀態,直到某些應用程序級代碼明確關閉或處置它爲止。 (否則,你會聽到Swing窗口隨機消失的故事......由於被垃圾收集器回收)。

相關問題