本文正在参加「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…