终止Java程序| Java Debug 笔记

109 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接

问题:终止Java程序

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

使用return;

当我想退出或终止我的程序执行时,我加入这个。

使用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;真正定含是什么;(因为它对于我来说很陌生,没有返回任何变量或值)?

回答

因为System.exit()只是编译器的另一个方法。它不会提前读取并认为整个程序将在那个点退出(JVM退出)。您的操作系统或 shell 可以读取在System.exit()方法中传递回来的整数。0表示“程序退出,一切正常”,任何其他值都可以用来通知发生的错误。由开发人员为用户去处理这些返回值。

另一方面,编译器很清楚return是一个保留的关键字。return返回一个值,并结束当前函数的运行,回退堆栈的栈顶指针到到调用它的函数那里(如果有的话)。在上面的代码中,它返回void,因为你没有提供任何东西来返回。

文章翻译自Stack Overflow:stackoverflow.com/questions/2…