日期:2014-05-20  浏览次数:20713 次

java对象调用close()方法与赋值为null的却别?
java有好多对象具有close()方法,如数据库连接,I/O流

调用close()方法与赋值为null对象发生了什么变化?

如果要及时释放对象占用的内存该如何操作?



------解决方案--------------------
close()可以释放资源。null只是空对象
------解决方案--------------------
释放对象占用的内存是gc来决定的,它想什么时候释放就什么时候释放。
------解决方案--------------------
数据库连接和IO中的close()方法仅是关闭了与数据库和文件建立起来的连接,并不是清空对象,如果不close()直接null可能导致,数据未完全写入数据库或文件中。
要及时释放对象,就close()掉吧,再由JVM进行处理吧,据说让其为null,也并不会释放内存的,还是需要JVM进行垃圾处理的。
如果要显示进行垃圾回收可以试试:System.gc(); 但是这样做会降低效率的。