使用大数据 JTable 关闭 JPanels 后内存泄漏



我有一些 JPanels 附加到 JTabbedPane。每个 JPanel 都包含存储在 JTable 中的大量数据。

在 JTabbedPane 中显示选项卡后,加载数据,分配给程序的内存从 16Mb 跳到 60Mb。

关闭任何选项卡(通过jTabbedPane.removeTabAt(selectedIdx))时,我注意到分配的内存没有减少。

我做了一个"分析"和"堆内存转储"。结果是:JTable 数据仍在内存中。

  • 为什么jTabbedPane.removeTabAt(selectedIdx)不释放在添加到 JTabbedPane 对象的面板中创建的所有对象?
  • 如何解决?

我认为您仍然引用了JTable,例如,您对某些组件使用了addListener并且没有删除它。更难说没有代码。

最新更新