io操作如果没有close而直接赋值为null有什么后果,而close之后又没有赋值为null,也就是还有对象的引用,那这个对象会不会释放内存,垃圾回收器会不会回收它
Reader reader = new InputstreamReader(new FileInputStream()); 如果reader.close()关闭了reader的资源 则FileInputStream的资源有没有关闭 ,没关闭的话如何关闭
close()操作是关闭资源的作用,没close的话,如果另一个程序也要打开写,或读这个文件就会出问题。
close是为了释放系统资源。close操作不执行,可能会影响其他进行的操作,并没有什么大的后果。
java的对象,不置为null,也会被垃圾回收的,内存回收跟是否close操作无关。一般对象的作用域中,方法调用完成,对象空间会自动回收的。
对象是否释放内存在于该对象是否还被引用,设置为null是为了让GC更快回收,不设置的话,会依据该引用变量的作用域执行回首。局部变量是在跳出该局部作用域后,实例变量是在退出该对象实例所在的作用域后回首,静态类变量永远不回收