您的位置:首页 > 编程语言 > PHP开发

ByteArrayOutputStream或ByteArrayInputStream不需要关闭流原因分析

2016-12-30 12:35 417 查看
在解压图片的时候发现ByteArrayOutputStream不需要关闭,为啥呢?

ByteArrayOutputStream或ByteArrayInputStream是内存读写流,不同于指向硬盘的流,它内部是使用字节数组读内存的,这个字节数组是它的成员变量,当这个数组不再使用变成垃圾的时候,Java的垃圾回收机制会将它回收。所以不需要关流。如下图所示,ByteArrayOutputStream内部是数组:



然后再看看FileOutputStream的构造:



很明显FileOutputStream的构造方法打开了IoBridge,

也就是说,指向内存的流可以不用关闭,指向存储卡/硬盘的流一定要关闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 内存 存储