一定被释放,因为system.gc();是强制性的释放资源,不用的对象都要回收

解决方案 »

  1.   

    看TIJ~~GC不是强制回收的,而是提醒编译器..该回收了...具体要不要回收..不一定
      

  2.   

    system.gc();   是建议 虚拟机 进行垃圾回收至于结果全凭虚拟机的心情而定
      

  3.   

    这个不一定,不过你可以在finally中作一些事情
      

  4.   

    哦,谢谢,那么像这种情况,如果JVM进行垃圾回收了,那么obj1会被释放吗?
      

  5.   

    楼上的问题的解答:不会,因为就算obj2被置空,但obj1依然指向Class1(),所以不会被回收。
    你的第一个问题的解答应该是:没有被回收。就算是obj2也不一定被回收。
    因为垃圾回收器以独立的低优先级线程方式运行。在任何时候,程序员都不能通过程序强迫垃圾回收立即执行。虽然可以调用System.gc() 或者Runtime.gc()方法提示垃圾回收器进行内存回收操作,但是这也不能保证调用该方法后,垃圾回收线程立即执行。