`
zdsyouxiang
  • 浏览: 25988 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

System.exit()的使用

    博客分类:
  • java
 
阅读更多

1.参考文献

http://hi.baidu.com/accpzhangbo/blog/item/52aeffc683ee6ec238db4965.html

2.解析

查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法的说明,代码如下:

复制代码
  /**
     * 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);
    }
复制代码

注释中说的很清楚,这个方法是用来结束当前正在运行中的java虚拟机。如何status是非零参数,那么表示是非正常退出。

  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)是回到最上层

3.示例

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

分享到:
评论

相关推荐

    系统.exit.zip

    标题 "系统.exit.zip" 暗示我们关注的是与计算机操作系统中的退出命令或者可能是与Java编程语言中的`System.exit()`方法相关的主题。虽然没有提供具体的标签来进一步指导,但我们可以从"PCF-demo-master"这个压缩...

    junit5-system-exit:一个JUnit5扩展,可帮助编写调用System.exit()的测试

    JUnit5 System.exit()扩展此可帮助您编写测试代码,以测试调用System.exit()代码。 从JUnit 5开始,@ Rules,@ ClassRules和Runners被扩展概念取代。正在安装将以下内容复制到build.gradle或build.xml 。 ...

    怎样完全退出android程序

    在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序...

    毕业设计&课设-安装后调用System.exit()的Java代理。.zip

    毕业设计、课程设计源码文件,已经过测试可以直接使用。 毕业设计、课程设计源码文件,已经过测试可以直接使用。 毕业设计、课程设计源码文件,已经过测试可以直接使用。 毕业设计、课程设计源码文件,已经过测试...

    毕业设计&课设-一个JUnit5扩展,用于帮助编写调用System.exit()的测试.zip

    毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以直接使用。毕业设计、课程设计源码文件,已经过测试可以...

    exit结束activity

    使用`System.exit()`会绕过这种管理,可能导致数据丢失,因为未保存的更改可能不会有机会被提交。此外,如果应用有后台服务或者正在运行的线程,这些都可能在`System.exit()`后被无预期地终止,影响用户体验。 4. *...

    利用Android两行代码真正杀死你的App

    通常,我们可能会尝试使用`System.exit(0)`或`Process.killProcess(Process.myPid())`这样的方法来强制关闭App,但这些方法实际上并不能确保App进程被完全终止,因为Android系统会为了保持用户体验而自动重启应用。...

    Java开发新猜数字小游戏,使用Git进行源码管理,使用单元测试工具JUnit对各个方法进行单元测试

    Java开发新猜数字小游戏,使用Git进行源码管理,使用单元测试工具JUnit对各个方法进行单元测试 public static void main(String[] args) { System.out.println("|----新猜数字游戏-----|");... System.exit(0

    uyaffs2 解压yaffs2 格式的img:system.img userdata.img

    在本案例中,我们将探讨如何使用`uyaffs2`工具来解压以YAFFS2(Yet Another Flash File System 2)格式编码的`system.img`和`userdata.img`文件。 YAFFS2是一种专为闪存设备设计的文件系统,它在嵌入式系统,特别是...

    System Lambda是一个函数集合,用于测试使用javalangSystem的代码.zip

    在实际使用中,开发人员可以通过引入 System Lambda 库,并在测试代码中应用提供的接口和类,以创建一个与真实 `System` 类行为类似的代理,这样可以在测试过程中精确控制与 `System` 相关的各个方面。 例如,以下...

    javafx-8u152-apidocs-api

    A JavaFX Application should not attempt to use JavaFX after the FX toolkit has terminated or from a ShutdownHook, that is, after the stop() method returns or System.exit(int) is called.

    解决phantomjs截图失败,phantom.exit位置的问题

    在本文中,我们将深入探讨如何解决在使用PhantomJS进行截图时遇到的问题,特别是关于`phantom.exit()`的位置问题。 首先,我们需要理解`phantom.exit()`这个函数的作用。`phantom.exit()`是PhantomJS提供的一个命令...

    Android 完全退出当前应用程序的四种方法

    System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出   2. 任务管理器方法  首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限  ActivityManager am = (ActivityManager...

    用java编写猜数游戏

    import java.util.Scanner; public class Test{ public static void main...System.exit(0);break; } else if(i==1) game.start(); else System.out.println("对不起,请您重新输入(0或1)!"); } } }

    Guid.rar_out_游览图

    大厦游览图,通过命令行来实现 System.out.println("where 显示当前在什么地方") System.out.println("list 列出当前位置的物品") System.out.println("list allspots ... System.out.println("exit 退出命令行")

    C#中WinForm程序退出方法技巧总结

    在这种情况下,可以使用`System.Environment.Exit(System.Environment.ExitCode)`来强制结束程序,或者在循环中设置退出条件以确保在用户要求关闭子窗体时能够安全中断循环。 另外,还有其他强制退出程序的方法,如...

    java假期练习程序.rar

    System.exit(0); } product=number1*number2; JOptionPane.showMessageDialog(null,number1+"*"+number2+"="+product,"jieguo",JOptionPane.PLAIN_MESSAGE); System.exit(0); } }

    JAVA数据的输入和输出.doc

    System.exit(0); } } ``` 二、数据的输入 在 JAVA 中,数据的输入可以通过多种方式实现,包括使用命令行参数、java.util.Scanner 类等。 1. 使用命令行参数 命令行参数可以通过 main(String args[]) 方法的...

    EmvReader Java Code

    System.exit(3); // throw new Exception( "Invalid reader index '"+iReader+"'. Last valid index is "+(terminals.size()-1) ); } CardTerminal terminal = terminals.get( iReader ); // Connect with ...

Global site tag (gtag.js) - Google Analytics