首先,你要明确一点垃圾回收和close方法时两个完全不同的概念。
1.java中垃圾回收机制的作用是:一个对象,可以有一个或多个引用变量指向它。当一个对象不再有任何一个引用变量指向它时,这个对象就被应用抛弃了。或者说,这个对象可以被垃圾回收机制回收了。
该对象被认定为没有存在的必要了,那么它所占用的内存就可以被释放。被回收的内存可以用于后续的再分配。 但是,并不是对象被抛弃后当即被回收的。至于他是什么时候被收回的这不需要我们去关心。
总之,他不会造成你内存的泄露。
2.io流它所调用的是你底层的资源,是你系统的东西,是你告诉了jvm给我分配一个输入或输出流,我需要使用了。他不是一种对象,所以当你不需要这个资源的时候,你当然要把他关闭了,不然jvm会一直保持这个输入和输出流。会造成资源的浪费。 |