System.exit(int status)的重视点

    添加时间:2013-7-10 点击量:

      /
    
    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 doesnt allow exit with the specified status.
    @see java.lang.Runtime#exit(int)
    /
    public static void exit(int status) {
    Runtime.getRuntime().exit(status);
    }View Code


    上方的是java.lang.System的源代码,我们可以找到System.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)是回到最上层


    下面插入的是一个测试的例子,当if语句中有System.exit(1),则只打印(0到99)这一百个数字;



    public class Test {
    
    public static void main(String[] args) {
    forint i = 0; i < 1000; i++) {
    if (i == 100) {
    System.exit(
    1);
    }
    System.out.println(i);
    }
    }
    }


    容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永
    分享到: