下面的代码是org.springframework.util.SerializationUtils(spring-core.3.2.1.jar)的serialize方法。 如您所见,没有oos.close方法。可以不调用close方法吗?
答案 0 :(得分:1)
在这种特殊情况下,没关系 - 涉及的两个流(ObjectOutputStream
和ByteArrayOutputStream
)不使用任何非托管资源(文件句柄,网络句柄)等等所以它对垃圾来说没问题收藏家只是照顾它。
就我个人而言,我通常会关闭这样的流,只是为了做正确的习惯,以防有人将流的类型更改为 拥有非托管资源的流,但我不认为在这种情况下,它真的算作 bug 。
答案 1 :(得分:0)
close
。但是,由于您不确切知道何时会发生这种情况,因此您应该自己调用close
,以便在您预期时进行清理(文件缓冲区刷新,执行网络切断)。