gc()了也不代表一步释放所有能释放的内存,也要经过Finalize(),才释放,我个人认为第三段说的不完善....

解决方案 »

  1.   

    "也要经过Finalize()"
    好,疑问来了,执行finalize(),不又回到了我所说的第二段了(不一定马上回收内存),难到Java的finalize()有两套机制,不会吧
    难道我理解错误,gc(),runfinalize()根本不是这样的,gc()是对所有的对象来说的,执行finalize,而runfinalize()未执行过finalized的,也不对阿,
    请大家继续指点
      

  2.   

    gc只是释放没有关联到的对象,Finalize()还是要走的。他比Finalize()更彻底一些。
      

  3.   

    是不是立即回收呀,执行完了finalize后,让后下一步在完全回收...
      

  4.   

    我搞清楚了,gc()是对所有的对象来说的,执行finalize,而runFinalize()
    则是有由JVM自己动态底选择的。
    其实说到底finalize()只是一种改对象的状态,就像windows中扔进了回收站,JVM才是真正的完成释放内存的工作