我想知道的是垃圾回收程序是一直都在运行吗?
还是阁上一定的时间运行一次,收集内存垃圾,然后回收?
如果是后者,那么阁多长时间运行一次?

解决方案 »

  1.   

    这个是JVM自己管理的事情,很难预测周期。
    不过,一旦可分配的内存不够时,一定会运行垃圾回收,如果还不行,OutOfMemory, 这是我唯一能确定肯定发生垃圾回收的情况。垃圾回收是单独的线程管理的,也要占用资源,所以在不是很迫切时,JVM不会太频繁的进行垃圾回收。你用eclipse就能看到,占用内存会一直涨到快满了,才突然被回收的, 当然手工可以强制回收。