Java - 如果没有 flush() 和 close(),ByteArrayOutputStream 是否安全?

标签 java

那么,如果 ByteArrayOutputStream 没有正确刷新和关闭,会不会导致内存溢出?我的意思是它们是否有必要放入代码中,否则 Java 会对其进行垃圾回收?

最佳答案

不,一旦对它的最后一个引用丢失,它将被垃圾收集。

根据 javadoc :

Closing a ByteArrayOutputStream has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.

此外,如果您查看代码,flushclose 都是 ByteArrayOutputStream 类中的空操作(尽管 flush继承自OutputStream,在OutputStream中是一个空操作,除非在具体实现中被重写。

关于Java - 如果没有 flush() 和 close(),ByteArrayOutputStream 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23164598/

相关文章:

java - 仅使用类中的静态变量和静态方法来维护应用程序的状态

java - 如何在hadoop安装中设置JAVA_HOME路径?

java - 无法在表中显示jsp数据

java - 在这种情况下,将创建 UserHandler 类的多少个实例?

java - iMacros for loop POS={{k}} k 不持有整数值/存储问题

java - 正则表达式避免最多代码 255 的字符

java - 如何为 IO 文件创建 stub 以在 Java 中进行单元测试?

java - 在参数化类型上使用绑定(bind)

java - 让应用程序的多个实例在 Apache Tomcat 中运行的最佳方法是什么?

java - VPS 上的 spring boot 应用程序没有响应