public byte[] getData() throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(buffer);
out.writeObject(this);
out.close();
return buffer.toByteArray();
}这里的 buffer 没有关闭,会造成内存泄露吗?
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(buffer);
out.writeObject(this);
out.close();
return buffer.toByteArray();
}这里的 buffer 没有关闭,会造成内存泄露吗?
哥哥
buffer.close();
return b;
这是典型的Decorator模式。
objectoutputstream.close()
的时候已经调用了bufferdoutputstream.close()方法。
原因是他们都继承自outputsstream方法。。
楼主对Decorator模式熟悉的话就知道了。
老兄请你说话严谨一点!!!
你循环运行1000次试下,就知道了。
或者
找个内存测试软件试一下就行了。JDK 1.7?它傻啊?
....
}catch(Exception e){}finally{
...//close
}
public DataHandler downLoad(String fromPath) throws Exception {
DataSource source = new FileDataSource(
new File("d:\\pics\\" + fromPath));
DataHandler handler = new DataHandler(source);
return handler;
}那么如果多次进行访问后,是否可能会出现内存泄露情况?