请问  for(;;){}java会启动gc吗????????????

解决方案 »

  1.   

    gc不是java中的垃圾回收器么?!应该就不会启动吧?!
      

  2.   

    启动GC的定义是什么?是指负责GC的线程?还是指一次GC动作?如果指GC线程的话从JVM运行开始就已经启动了;而GC动作则要视情况而定,一般来说如果内存充裕,并不会随意启动回收内存的动作,因为回收内存也要消耗不少CPU,甚至停止所有线程。楼主你写了个空的死循环,如果在单线程程序中的话,一般来说就不会执行GC动作,因为没有内存变化;如果是多线程程序中的话,那仍然随时会有GC动作,因为其它线程可能申请和释放了内存。
      

  3.   

    gc是一直在运行的,运行一段时间会触发gc回收。循环体虽然是空的,可是并不代表内存里面是没实例的。
      

  4.   

    触发gc的条件不是标准,不是标准的问题,就很难有标准答案。而且你进入一个死循环了。这个过程又不会多耗费堆内存,触发gc是不太可能了。
      

  5.   


    如果是单线程,应该不会启动gc.gc一般回收堆内存空间的垃圾。
    如果是多线程。应该会有gc来清理别的线程产生的堆内存垃圾