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
。