网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

话不多说,直接上图

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

代码:System.exit(0);

这句代码,很简单,但是也非常暴力。就是结束整个程序。

1、下面先演示下不加上这个语句:

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

然后控制台输出两个println;

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

2、现在加这句代码放在中间

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

然后执行的效果就是:

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

3、现在把语句放在开头:

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

执行:

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

这里给大家推荐一个java学习群:813557920,进群可以找管理领取学习资料,以及每天晚上8点直播免费授课学习java!欢迎小白和进阶中的朋友!

然后什么都没有了。显示为空。

————————————

下面来看一下,exit这个静态方法:

网友:有没有一段代码,看起来简单,实则威力无穷 程序员:有啊

/**

* Terminates the currently running Java Virtual Machine. The

* argument serves as a status code; by convention, a nonzero status

* code indicates abnormal termination.

* <p>

* This method calls the <code>exit</code> method in class

* <code>Runtime</code>. This method never returns normally.

* <p>

* The call <code>System.exit(n)</code> is effectively equivalent to

* the call:

* <blockquote><pre>

* Runtime.getRuntime().exit(n)

* </pre></blockquote>

*

* @param status exit status.

* @throws SecurityException

* if a security manager exists and its <code>checkExit</code>

* method doesn't allow exit with the specified status.

* @see java.lang.Runtime#exit(int)

*/

public static void exit(int status) {

Runtime.getRuntime().exit(status);

}

看了这段代码,你就会发现,这个是有一个静态参数的,如果是非0表示非正常退出,如果是0表示是正常退出。

下面来总结一下,这个方法:

1、System.exit(0)是将你的整个虚拟机里的内容都停掉了 ,而dispose()只是关闭这个窗口,但是并没有停止整个application exit() 。无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西

2、System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序

3、System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点:return是回到上一层,而System.exit(status)是回到最上层

示例

在一个if-else判断中,如果我们程序是按照我们预想的执行,到最后我们需要停止程序,那么我们使用System.exit(0),而System.exit(1)一般放在catch块中,当捕获到异常,需要停止程序,我们使用System.exit(1)。这个status=1是用来表示这个程序是非正常退出。

猜你喜欢

转载自blog.csdn.net/weixin_40876133/article/details/82179667
今日推荐