终止 Java 程序

2022-08-31 11:14:35

我找到了终止(关闭或停止)我的Java程序的方法。我找到了两种解决方案。

  1. 使用回车;
    当我想退出或终止我的程序执行时,我会添加这个。

  2. 使用 System.exit() ;
    有时我用它。我从这个问题中读到了System.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;


答案 1

调用(或与此相关的任何其他值)会导致 Java 虚拟机退出,从而终止当前进程。您传递的参数将是进程将返回到操作系统的返回值。您可以从程序中的任何位置进行此调用 - 结果将始终相同 - JVM终止。由于这只是在类中调用静态方法,因此编译器不知道它将做什么 - 因此不会抱怨无法访问的代码。System.exit(0)javaSystem

return语句只是中止当前方法的执行。它的字面意思是将控件返回到调用方法。如果将方法声明为(如示例中所示),则无需指定值,因为需要返回 。如果将方法声明为返回特定类型,则必须指定要返回的值 - 并且此值必须属于指定的类型。voidvoid

return仅当程序位于正在执行的主类的方法内时,才会导致程序退出。如果您尝试将代码放在它之后,编译器将抱怨无法访问的代码,例如:main

public static void main(String... str) {
    System.out.println(1);
    return;
    System.out.println(2);
    System.exit(0);
}

不会使用大多数编译器进行编译 - 产生指向第二次调用的错误。unreachable codeSystem.out.println


答案 2
  1. System.exit() 是一种导致 JVM 退出的方法。
  2. return 只是将控件返回到调用函数。
  3. return 8 将控制权和值 8 返回给调用方法。

推荐