closures一个ByteArrayOutputStream没有效果?

这个语句“closures一个ByteArrayOutputStream没有任何作用”( http://java.sun.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#close() )是什么意思?

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

谢谢。

ByteArrayOutputStream.close()真的释放内存吗?

不,完全没有。 你可以看看它的源代码:

 public void close() throws IOException { } 

要释放内存,请确保没有对它的引用,并让垃圾收集器做它的事情。 就像任何其他正常的对象一样。

基于文件和基于Socket的stream是非常特殊的,因为它们使用非内存操作系统资源(文件句柄),可以从独立的内存中运行。 这就是为什么明确地closures它们非常重要。 但是这并不适用于纯粹基于内存的ByteArrayOutputStream