这句话“关闭ByteArrayOutputStream
无效”(http://java.sun.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#close())是什么意思?
我想确保释放ByteArrayOutputStream
中的内存。 ByteArrayOutputStream.close()
真的会释放内存吗?
感谢。
答案 0 :(得分:87)
ByteArrayOutputStream.close() 真的释放记忆?
没有。它什么都没做。你可以看一下它的源代码:
public void close() throws IOException {
}
要释放内存,请确保没有引用它并让垃圾收集器执行其操作。就像任何其他普通物体一样。
基于文件和套接字的流是特殊的,因为它们使用非内存操作系统资源(文件句柄),这些资源可以独立于内存耗尽。这就是为什么明确地关闭它们很重要。但这不适用于纯粹基于内存的ByteArrayOutputStream
。