论坛上有人说:调用 System.gc()并不能达到立即回收的目的。那该如何做呢?
等着系统自动来回收的问题是:垃圾已经100多M了,快崩溃了,它也不回收。
例如:String a=new String("abcd"); a=new String("efgh");这两句执行后,前一句就有垃圾产生了。

解决方案 »

  1.   

    即便你调用System.gc();JVM也不会立即启动垃圾回收机制的,回收机制只有JVM自己去启动,你控制不了的。
      

  2.   

    JAVA中没有方法直接调用来垃圾回收的,只能提醒系统来回收垃圾。
      

  3.   

    我们期待LZ写一个JVM出来实现,然后提供一个接口让我们可以更灵活处理
      

  4.   

    Java中程序员不能控制垃圾回收 只能提醒一下虚拟机来回收 
    其实虚拟机是一直在回收的 只是回收的线程运行级别比较低 有空时才回收 调用System.gc()方法就是暂时提高了回收线程的运行级别 并不能保证立即回收
      

  5.   

    string 最好别这样new。“abcd”不一定就是垃圾啊,如果后面接着String c = “abcd”,就不会另外开辟存储空间了。开辟存储空间也有消耗的。