有个问题一直搞不清楚:既然java有GC了,为什么有些对象还需要调用它的close方法来关闭?比如说输入输出流那些类。

解决方案 »

  1.   

    上网找了一些相关的资料,自己总结了以下,希望能帮上忙,(我自己也学习中)java 中的"回收垃圾机制(GC)", 他的回收的是针对那些没有任何引用的对象,如果的当虚拟机检测到本机内存将近不够用时,他就会自动调用System.gc()方法去回收那写对象,而腾出内存,但是java mv 不会自动出回收那些正在站用的资源的对象,也就是说如果你的那个程序还在运行,那么就回消耗资源,而对与一些加了锁的文件,如果你不及时的访问该文件的流关闭,其他流就不可以访问该文件!而close()就是为了解决这个问题的.