class A
{
public static void main(String args[])
{
System.exit(0);
}
}

class A
{
public static void main(String args[])
{
    return;
}
}
有什么区别??

解决方案 »

  1.   

    如果是程序入口方法,两者没什么区别
    如果是别的方法,那System.exit(0)直接终止程序,就算后面有代码也不执行了
    而return则返回至调用该方法的地方,如果后面还有代码则继续执行
      

  2.   

    System.exit(0);  终止线程 但无法返回什么return 最主要的功能是返回一个变量
      

  3.   

    在main 里面没有区别
    在别的地方区别,看其它朋友的回复!
      

  4.   

    是的,在main方法里边均是退出程序。
      

  5.   

    恩呢,在main 里面没有区别 
    在别的地方区别,看其它朋友的回复!
      

  6.   

    System.exit(0);  终止线程.
    return 最主要的功能是返回一个值.
    在main()方法中功能一样,其他方法中就不一样了。
      

  7.   

    system.exit(0); 是方法调用,在程序的任何地方都会显式表明JVM进程要退出系统了. 返回值为0.可以通过%errorlevel%来取得. return 是一个关键字,表明返回调用当前方法的方法中. 如果是在main中,调用它的方法就是系统了,所以也可以起到退出JVM的作用,但没有返回值.
    如果是在其他地方,这个语句只能返回上级调用中.
      

  8.   

    答:在main 里面没有区别 ,这是错误的。当然是有区别。即使是在main()方法中。
    在其它方法中的区别我们不说。就讨论在main()中的区别:
    当用return;返回时,main()并不能立即运行结束,而用System.exit(数值);时,main()将立即无条件的结束
    如:main()中代码
    public static void main(String[] args)
    {
     其它代码;
     new myThread().start();
     if(条件为真) return;
    //此处的return并不能立即结束main。等待线程myThread
    //若换成System.exit(数值);则立即无条件地结束。
     其它代码
    }
    }
      

  9.   

    确实楼上的例子非常好, 有的时候main线程并不能保证JVM退出. 所有的线程都结束才行
      

  10.   

    在main()中的区别: 
    当用return;返回时,main()并不能立即运行结束,而用System.exit(数值);时,main()将立即无条件的结束
      

  11.   

    这里的效果都一样,都是跳出main();
    但System.exit()是中止程序,停止jvm运行;return是回到上一层的调用位置
      

  12.   

    结果不一样!main方法中调用System.exit(0)会使得JVM退出,return只是使得运行main方法的线程退出了,并不代表JVM会退出,因为JVM退出的要求是所有非deamon线程都结束对于你的例子来说,因为只有一个线程,所以效果一样。但是这两者代表的意思是不相同的
      

  13.   

    return回到上一层的调用位置是什么意思?
      

  14.   

    system.exit(0)表示程序正常退出,system.exit(1)表示非正常退出,都没有返回值。return则返回至调用该方法的地方,如果后面还有代码则继续执行