今天看了张老师的视频, 其中张老师提出了一个问题:既然java有垃圾收集器可以对那些不使用的对象进行垃圾回收,在内存中之中清除掉,为什么还要使用close()方法来关闭流了,这不是显得有点多余吗?
张老师解释的非常好! 查看API文档,close()方法的意思是关闭此流和与该流相关的所有系统资源,这里为什么还要提到系统资源了?
这是因为在生成流对象时,不仅是在JVM中占用资源,相对操作系统的来说,也要为流开辟资源,对java垃圾收集器来说,操作系统分配的外部资源他是无能为力的,所以对于这些外部资源就只能调用close()方法将那些资源关闭掉!