处理JFrame会导致内存泄漏吗?

Bea*_*ear 8 java memory swing memory-leaks jframe

我正在编写一个测试程序如下:

  1. 当用户单击按钮A时,它会打开50个JFrame.
  2. 当用户单击按钮B时,它会通过单击按钮A来处置所有显示的JFrame.

我发现单击按钮B后内存不会减少.我使用Windows中的任务管理器ctrl+ alt+ 确定了这一点del,并检查了"java"的内存使用情况.

mKo*_*bel 11

这是对的,没办法,不能解决这个问题(不仅仅是在Java PL中),

1)真的不会在Runtime/Fly上创建大量的顶级容器,因为它们永远不会被最终确定,并且直到当前的JVM实例退出,并且这些Object从未被GC只用过Grapfics2D

2)myContainer#dispose()on Runtime与当前JVM实例相同,myContainer#setVisible(false)与JVM可用和使用Memory的连接相同

3)只创建几个Top-Level Containers(最大同时显示),重新使用,但将JPanel放在1.st JComponent并调用myPanel#removeAll(),否则你将删除RootPane并从你的容器只留下边框:-)将是半透明的

4)部分可以通过调用GC来减少JVM使用的内存,但只是从中恢复数量Graphics2D并且Garbage不能立即起作用,

5)更在这里有用的信息在这里