谢谢各位大侠了,
java如何释放那些不需要的内存单元!讲的越详细越好!
关键是finalize()方法的使用,这个方法是否能强制释放堆区的内存单元!

解决方案 »

  1.   

    是从C++转到Java的吧?呵呵
    Java是由GC来释放无用的内存单元,但是什么时候会执行是由JVM决定的,程序无法控制。
    即使你显式的调用了finalize方法,JVM也不一定会立即释放内存,JVM管理内存有自己的策略,具体你可以看一下Java虚拟机规范。
      

  2.   

    java里不不用自己释放内存单元.到了没有内存可以用的时候.垃圾回收机制 会自动释放内存
      

  3.   

    当一个对象不再被程序所引用时,它所使用的堆空间可以被回收,以便被后续的新对象所使用。垃圾收集器必须能断定哪些对象是不再被引用的,并且能够把它们所暂居的堆空间释放出来。在释放不再被引用的对象的过程中,垃圾收集器运行将要被释放的对象的终结方法(finalize).一旦垃圾回收器准备好释放对象占用的空间,首先调用该对象的finalize(),并且在下一次垃圾动作发生时,才会真正回收对象占用的内存.
    记住一点:java中,一个对象如果有终结方法:finalize(),这个方法是垃圾收集器在释放对象前必须运行,是垃圾收集器运行对象的终结方法。