我找到了终止(关闭或停止)Java程序的方法。我找到了两个解决方案。
使用 return; 当我想退出或终止程序执行时,添加它。
使用 System.exit() ; 有时我用它。我从This Question中了解了 Sytem.exit()。
所以,我对他们都了解一点。但是我仍然对它们的实际工作方式感到困惑。请检查以下代码…
public class Testing { public static void main(String... str) { System.out.println(1); System.exit(0); System.out.println(2); return; } }
我确定 2不会出现。我想知道为什么return;或其他代码可以在的语句下面写System.exit(0);以及真正的定义是什么return;(因为对我来说,return没有任何变量或值,这是很奇怪的事情)?
return;
System.exit(0);
return
调用System.exit(0)(或与此有关的任何其他值)会导致Java虚拟机退出,从而终止当前进程。您传递的参数将是java进程将返回到操作系统的返回值。您可以从程序的任何位置进行此调用- 结果将始终相同-JVM终止。由于这只是在System类中调用静态方法,因此编译器不知道它将执行的操作,因此不会抱怨无法访问的代码。
System.exit(0)
java
System
return语句只是中止当前方法的执行。从字面上讲,这意味着 将控件返回到调用方法 。如果将方法声明为void(如您的示例中所示),则无需指定值,因为需要返回void。如果声明该方法返回特定类型,则必须指定要返回的值- 此值必须为指定的类型。
void
return仅当它在main正在执行的主类的方法内部时,才会导致该程序退出。如果尝试将代码放在其后,则编译器将抱怨无法访问的代码,例如:
main
public static void main(String... str) { System.out.println(1); return; System.out.println(2); System.exit(0); }
不会使用大多数编译器进行编译-产生unreachable code指向第二个System.out.println调用的错误。
unreachable code
System.out.println