创建了一个对象,当不再使用时如何释放其所占用的资源(主要是内存)?

解决方案 »

  1.   

    当然你可以用System.gc();但是我们显式的去调用,他还是在不确定的时候回收垃圾内存!
      

  2.   

    我们不能控制何时进行垃圾回收,jvm来决定
      

  3.   

    Object obj = new Object();.....obj = null;//清空释放对象 个人认为gc不必要  因为也是交给JVM的垃圾回收机制
      

  4.   

    obj = null;//清空释放对象 
    -------------------------
    没有必要吧  JVM会知道obj后面有没有被使用的 没有被使用就回收了
      

  5.   

    首先,对像要成为垃圾,其次,可以建议JVM回收(SYSTEM.GC())
      

  6.   

    但是,类似JAVA的拥有垃圾回收机制的语言,由于虚拟机实现的水平不同,可以帮虚拟机做一些工作,比如,对象不再应用的时候,显示的置空,这样,你就帮了虚拟机的忙了.
      

  7.   

    垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。
      

  8.   

    一般来讲不需要特别的调用,GC 自然会回收。如果 GC 无法进行回收,那表明你的代码有问题。
      

  9.   

    System.gc() 是通知系统可以回收了 但什么时候回收就没准了   没有办法来第一时间回收
      

  10.   

    真的吗?
    --------------------
     回复人:TianYaRider(天涯骑士) ( 一级(初级)) 信誉:100
    垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。
      

  11.   

    java的一个优势就是gc,如果不用是不是有点可惜啊。
      

  12.   

    set it to be null ,then System.gc();
      

  13.   

    >>垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。FT,你真幽默……
      

  14.   

    JVM只是在内存面临不足的时候才会起用垃圾回收器,用了gc()也不能立即进行回收,所以建议思考是否需要立即回收,如真的需要,可以使用本地化方法,比如使用VC++的回收机制,这样解决问题,但是使得程序不好移植
      

  15.   

    JVM会在一个适当的时候回收无用的对象空间,不用LZ费心
      

  16.   

    您有两种可以使用的方法去清除内存中的没有释放的内存。
    方法1是使用系统的方法System.gc(); 这种方法不推荐使用。因为有的时候你的程序可能等待用户输入值所以有可能也给释放提示错误。方法2是在程序中自己知道什么时候用不到了这块内存后便赋值为NULL来让系统自动回收。推荐使用。因为系统自动回收没有用的内存的线程级别比较低所以不会破坏到您的程序运行。