-2

如何释放 ImageIcon 分配的内存?我有一个带有“new ImageIcon ...”的无限循环,我需要在屏幕上显示每个图像后释放它分配的内存。图像之间的显示间隔为 200 毫秒。有没有人有一个简单有效的解决方案来避免不断增长的内存消耗?非常感谢!

4

2 回答 2

2

如果您不重用图像并想丢弃系统缓存的数据,请查看ImageIcon#getImage#flush

刷新此 Image 对象正在使用的所有可重构资源。这包括为渲染到屏幕而缓存的任何像素数据,以及用于存储图像数据或像素(如果可以重新创建)的任何系统资源。图像被重置为类似于首次创建时的状态,因此如果再次渲染,则必须重新创建图像数据或再次从其源中获取图像数据。

于 2012-12-15T05:20:49.923 回答
1

只需在图像的最终绘制之后,说images.get(i)删除持有的图像:images.set(i, null)。通过这种方式,垃圾收集器可以将其删除。

于 2012-12-15T02:32:31.443 回答