那么,如果没有正确刷新和关闭,ByteArrayOutputStream会导致内存溢出吗?我的意思是他们是否有必要将代码放入或Java将垃圾收集它?
是。可以flush()或不可以是安全close()的ByteArrayOutputStream。不论是否使用,都不会对内存使用造成任何影响。
唯一与a close()或flush()有任何关联的情况ByteArrayOuputStream是,您已在包含缓冲组件的输出管道的末尾使用了它;例如BufferedWriter。然后,您确实需要从管道的“顶部”刷新或关闭...以确保所有数据都将其放入字节数组。
调用flush()或不会对GC产生任何影响close()。无论哪种方式,只要对象保持可访问状态,流的内容将继续保留在内存中。(相比之下,需要及时关闭对外部资源的读/写流,因为它们具有需要释放的外部“资源描述符” ...)
综上所述:
flush()或close()光秃秃的ByteArrayOutputStream。只是没有必要。ByteArrayOutputStream,但这不是由于内存使用或GC考虑。ByteArrayOutputStream对象可访问即可。| 归档时间: |
|
| 查看次数: |
10487 次 |
| 最近记录: |