当前位置:  开发笔记 > 编程语言 > 正文

在让它们收集垃圾之前,我是否需要释放Swing组件?

如何解决《在让它们收集垃圾之前,我是否需要释放Swing组件?》经验,为你挑选了1个好方法。

我使用外部资源,如文件或数据库连接,我需要关闭它们才能让它们离开.

我是否需要使用Swing组件做同样的事情?如果是,那怎么样?



1> James..:

通常,在完成对象时不需要处置对象(尽管将对它们的引用设置为null可能允许它们更快地进行GC).但是,AWT和Swing对象分配了一些需要释放的本机资源.此外,AWT线程将窗口视为顶级对象,防止它们被垃圾收集并且JVM终止.

因此,当您完成窗口时,您需要处理它,这将释放它已分配的本机资源.一种方法是在其上调用Window.dispose().但是,更好的选择是在初始化每个根窗口时调用JFrame.setDefaultCloseOperation().如果你传递它DISPOSE_ON_CLOSE,它会在用户关闭窗口时处理它自己.当最后一个这样的窗口关闭时,AWT线程将停止阻塞并允许JVM关闭(假设您没有运行任何其他异常线程).或者,您可以传递它EXIT_ON_CLOSE,这将导致您的窗口调用System.exit(),它告诉JVM您的应用程序已完成并正常终止.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有