题目:加于不加 while(true)语句有区别吗?什么区别?public class UseGC { /**
 * @param args
 */
public static void main(String[] args) { System.out.println("请按Ctrl + C终止程序......");

GcTest obj1 = new GcTest("Object1");
GcTest obj2 = new GcTest("Object1");
GcTest obj3 = new GcTest("Object1"); obj1 = null;
obj2 = null;
obj3 = null;

System.gc();

//while(true);
}}

解决方案 »

  1.   

    没有看出区别
    区别在于有while(true); 
    程序一直处于运行状态不结束而没有 就马上结束掉
      

  2.   

    这个是想要测试一下在System.gc();后
    obj1,obj2,obj3之前所引用的对象被回收,
    调用了被重写了的finallize方法,
    想看打印输出吧,没什么的。
      

  3.   

    调用了被重写了的finallize方法, 
      

  4.   

    想知道:你怎么看出的是调用了被”重写的“finalize方法的,请指教..
      

  5.   

    想知道:你怎么看出的是调用了被”重写的“finalize方法的,请指教..
      

  6.   

    我也不知道怎么能看出调用的。
    但java就是这样,对象在被回收之前,会调用它的finalize方法,
    进行一些后续处理。
      

  7.   

    可以说 析构函数作用相当吧。
    finalize方法还是依赖GC的。
    37109630
      

  8.   

    while(true)程序应该会死掉吧
      

  9.   

    GC不是说一个对象没有被任何其它程序调用就会马上回收那个对象,而是GC根据内存使用情况不定时的去运行回收的。
      

  10.   

    回答都不完全,实际情况是这样的。,。
    通常JVM 不会去主动清理内存,除非感觉内存吃紧时,就你上面代码而言,如果你不加这个while,有可能还没有到该回收时,你的程序就已经结速,所以不会有效果,你加了这个  while会增加你内存占用量,和程序执行时间,就应该会使你测试结果更明显
      

  11.   

    java垃圾回收系统是在内存有一定使用的情况下才自动启用。如果没有while语句的话,程序结束后,内存只用了一小部分,所以可能垃圾回收器根本不会启动。反之,可能可以启用。