2012-02-24 17 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