调用
System.exit(0)(或与此有关的任何其他值)会导致Java虚拟机退出,从而终止当前进程。您传递的参数将是
java进程将返回到操作系统的返回值。您可以从程序的任何位置进行此调用-
结果将始终相同-JVM终止。由于这只是在
System类中调用静态方法,因此编译器不知道它将执行的操作,因此不会抱怨无法访问的代码。
return语句只是中止当前方法的执行。从字面上讲,这意味着 将控件返回到调用方法
。如果将方法声明为
void(如您的示例中所示),则无需指定值,因为需要返回
void。如果声明该方法返回特定类型,则必须指定要返回的值-
此值必须为指定的类型。
return仅当它在
main正在执行的主类的方法内部时,才会导致该程序退出。如果尝试将代码放在其后,则编译器将抱怨无法访问的代码,例如:
public static void main(String... str) { System.out.println(1); return; System.out.println(2); System.exit(0);}不会使用大多数编译器进行编译-产生
unreachable pre指向第二个
System.out.println调用的错误。



