2012-02-24 18 views
2

如果從一個Swing應用程序中執行System.exit(1),是否有與圖形相關的本地資源自動發佈?如果我添加一個myFrame.dispose()myFrame是在應用程序的唯一 頂層容器,我可千萬不要讓使用程序的一些 非Java GUI看到惱人的behavoiur在GUI狀態的一部分將堅持凍結的屏幕突然退出?一個進程擁有當JVM退出時,本機屏幕資源是否自動釋放?

回答

4

一切都被釋放時,進程退出,除非你喜歡的Netware談論病理操作系統3 & 4.

+1

_pathological_,lol – UmNyobe 2012-02-24 10:05:16

2
  • 頂層容器從未GC'ed,因爲錯過了方法的finalize ()

  • 在此背景下JFrame.dispose()什麼都不做,這個容器仍然存在於UsedMemory,un_changed,直到目前的JVM實例退出,

  • 你可以回報UsedMemerory通過移除它的內容,注意從ContentPane刪除任何東西,否則(RootPane刪除)你的容器保持透亮,只對可見ToolBarBorders

  • 所有窗口總是入店和re_usable,您可以通過測試Window[] allWindows = Window.getWindows(); throught整個應用程序生命週期

  • re_using測試容器isDisplayable()

  • 一切重要here

然後

1)不要創建太多的頂層容器中,

2)存在

3)只Object失去所有referencies可能是re_use容器GC'ed

+0

感謝您的指點! – 2012-02-24 22:17:37