我已经开始使用Java(和Java本身)中的图像和缓冲图像进行了第一步,对flush()方法有些困惑,我的问题很简单:何时安全甚至强制执行刷新代码中的图片?

做一些测试看起来像Image.flush()并没有做任何事情,但是BufferedImage.flush()给出了一些随机结果(有时似乎释放了一些内存),但是我用来绘画的组件停止在其上绘画背景。

因此,我应该使用Image.flush()还是BufferedImage.flush()还是我必须让JVM自己完成的事情,或者是在对象的finalize()方法中完成它?

我真的不知道...

最佳答案

除非您希望释放内存,否则您无需调用flush()。它基本上只是暗示对象说:“嘿,现在就删除所有后备内存缓冲区,而不是等待垃圾收集来照顾您。”这可能是有用的性能优化,但永远不需要调用。

根据Java文档,调用flush()应该使图像处于可以根据需要进行自我重构的状态,但是显然,您遇到的情况并非如此。基本上,除非您确定不再需要该图像,否则不要调用flush()

07-28 03:17
查看更多