JVM退出时是否自动释放本机屏幕资源?

时间:2012-02-24 08:53:41

标签: java swing jvm

如果从Swing应用程序执行System.exit(1),是否会自动释放与图形相关的本机资源?如果我添加myFrame.dispose()myFrame是唯一的 在应用程序中的顶级容器,我可以肯定不会在某些人看到烦人的行为 使用程序的非java GUI,其中部分GUI状态在突然退出时会被冻结到屏幕上?

2 个答案:

答案 0 :(得分:4)

进程拥有的所有内容都会在进程退出时释放,除非您在谈论Netware 3& S等病态操作系统。 4。

答案 1 :(得分:2)

  • 顶层容器从不GC,因为错过方法finalize()

  • 在此上下文中JFrame.dispose()不执行任何操作,此容器仍存在于UsedMemory,un_changed中,直到当前JVM实例退出,

  • 你可以通过删除它来回复UsedMemerory,注意删除ContentPane中的任何内容,否则(RootPane已删除)你的容器保持半透明,只有可见ToolBar和{{1 },

  • 所有Window始终可访问且可重用,您可以在整个应用程序生命周期内通过Borders对其进行测试

  • 在重新使用Window[] allWindows = Window.getWindows();

  • 的测试容器之前
  • 重要的一切here

然后

1)不要创建大量的顶级容器,

2)存在的re_use容器

3)只有失去所有参考的isDisplayable()可能是Object