关闭ByteArrayOutputStream无效?

时间:2010-02-24 23:48:42

标签: java

这句话“关闭ByteArrayOutputStream无效”(http://java.sun.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#close())是什么意思?

我想确保释放ByteArrayOutputStream中的内存。 ByteArrayOutputStream.close()真的会释放内存吗?

感谢。

1 个答案:

答案 0 :(得分:87)

  

ByteArrayOutputStream.close()   真的释放记忆?

没有。它什么都没做。你可以看一下它的源代码:

public void close() throws IOException {
}

要释放内存,请确保没有引用它并让垃圾收集器执行其操作。就像任何其他普通物体一样。

基于文件和套接字的流是特殊的,因为它们使用非内存操作系统资源(文件句柄),这些资源可以独立于内存耗尽。这就是为什么明确地关闭它们很重要。但这不适用于纯粹基于内存的ByteArrayOutputStream