java有好多对象具有close()方法,如数据库连接,I/O流调用close()方法与赋值为null对象发生了什么变化?如果要及时释放对象占用的内存该如何操作?

解决方案 »

  1.   

    close()可以释放资源。null只是空对象
      

  2.   

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