自己调用这些都不会有什么明显的动作,只有当你的资源低到一定程度的时候才会进行垃圾回收,回收的时候从java.lang.Object开始找起,任何不和外界通信的都认为是垃圾,或者只是两个之间通信的,两个都认为是垃圾:原理就是这样。

解决方案 »

  1.   

    你可以看看Core Java 和 Thinking In Java,
    如果你还想要深入看,可以看Java Virtual Machine Specification 2nd Version, 在Sun的网站上有的下
      

  2.   

    垃圾回收的原理是应用计数(reference counting)和跟踪收集(tracing collector)。其核心条件是:
    1、所有object(堆中分配的内存块)都必须用指针(再栈或寄存器中)引用(c/c++就不是这样,它允许变量直接指向object/struct地址)
    2、指针不允许运算(否则应用计数和跟踪收集就无从谈起了)
      

  3.   

    按照think in java的说法,java的垃圾清理没有但是线程来实现,你自己调用gc是没有问题的,就是要把握好时机。