Close 与 GC的区别 [从论坛而来]

来源:互联网 发布:java 封装性通过 编辑:程序博客网 时间:2024/05/15 10:42

java中有垃圾回收GC, 为什么还要调用close


 

简单说,close()方法是关闭,而GC是销毁。

其实这很象垃圾桶和垃圾工厂的关系,我们把垃圾放入垃圾桶,垃圾并没有被销毁,只是表明:这东西我不要(close())了。而垃圾工厂才是真的把垃圾给处理了。

如果你不把垃圾放入垃圾桶(没有close()),垃圾工厂是不敢冲到你家,把垃圾拿去销毁的。

大概就是这个意思吧,低层工作原理,4楼说得非常准确了,不再重复。

 

 

 

流不单在内存中分配了空间,也在操作系统占有了资源,java的gc是能从内存中回收不使用的对象,但对操作系统分配的资源是无能为力的,所以就要调用close()方法来通知OS来释放这个资源。