我写一个测试程序如下:配置JFrame会导致内存泄漏吗?
- 当用户点击一个按钮,它会打开50个JFrames。
- 当用户点击按钮B其配置通过点击按钮A.
显示的所有JFrames我发现,内存不点击按钮后B.减少我确定这个使用任务管理器,CTRL +alt + del在Windows中,并检查“java”的内存使用情况。
我写一个测试程序如下:配置JFrame会导致内存泄漏吗?
显示的所有JFrames我发现,内存不点击按钮后B.减少我确定这个使用任务管理器,CTRL +alt + del在Windows中,并检查“java”的内存使用情况。
这是正确的,没办法,不能够解决(不仅是在Java中PL),
1)真不上运行时创造了大量的Top-Level Containers /飞起来,因为他们从来没有定稿,直到目前的JVM实例退出,而这些对象从未GC'ed只有他们Grapfics2D
2)上运行myContainer#dispose()
是同为当前的JVM实例为myContainer#setVisible(false)
在JVM提供和使用的内存
3)创建只有少数Top-Level Containers
(最高同时显示),再利用连接这一点,但放在那里JPanel为1.st JComponent
和呼叫myPanel#removeAll()
,否则你会删除RootPane和从集装箱撑只有边框:-)是半透明
4)partialy可以减少JVM通过调用GC使用的内存,但是从Graphics2D
只是returs量和Garbage
不工作immediatelly,
如果您的框架中存在强烈的GC(垃圾回收器)根引用,那么如果调用了dispose方法,则它不会被垃圾回收,因此在处理完所有内容后无法看到任何内存更改框架。如果你想要内存,你应该释放的东西,那么你需要垃圾收集帧。
一些代码将有助于我们肯定... –
参见[删除上运行顶层容器(http://stackoverflow.com/questions/6309407/remove-top-level-container-on-runtime/6310284# 6310284)。 – trashgod
我的代码没什么特别的。 通过新的JFrame创建JFrame。 通过调用dispose()来处理它 – Bear