`

System.exit(0)正常结束jvm和System.exit(1)非正常结束jvm

 
阅读更多
查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法

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

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

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

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



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


java   abc.HelloWorld

ECHO   exit=%ERRORLEVEL%

IF   ERRORLEVEL   0   ECHO   正常结束,或者调用了System.exit(0)
IF   ERRORLEVEL   1   ECHO   System.exit(1)

其实两者都不是“正常”退出
try   {
    System.exit(0);   //试试return或者throw
}   finally   {
    System.out.println( "!!!!! ");   //这行,无论return,   throw都会执行,但是System.exit却不是
}
分享到:
评论

相关推荐

    系统.exit.zip

    参数`status`通常用来表示程序的退出状态,0通常表示正常结束,非零值通常表示异常结束。 在PCF(Pivotal Cloud Foundry)中,这是一个云平台,用于部署和管理应用程序。开发者可以使用PCF的云原生能力,如自动伸缩...

    JVM与Java体系结构.pdf

    虚拟机退出可以通过正常结束、异常终止或系统调用如`System.exit()`实现。 4. **JVM的发展历程**:从早期的Classic VM到Exact VM,再到现在的HotSpot VM,JVM不断优化,引入了如JIT编译器和热点代码探测技术,提升...

    java 程序的退出的资源

    一个常见的用法是`System.exit(0)`,表示程序正常结束;非零值则通常表示程序遇到了错误或异常情况。 异常退出则是由于程序运行过程中发生了未捕获的异常,如`NullPointerException`、`...

    Android 实现彻底退出自己APP 并杀掉所有相关的进程

    System.exit() 方法可以带有参数,0 表示正常退出,非 0 表示非正常退出。通常这种退出方式应该放在 catch 块中,例如: ```java try { // 代码 } catch (Exception e) { System.exit(1); } ``` 3. 杀死 App 的...

    JVM 入门到精通 Typora 版

    - 某线程调用`Runtime`类或`System`类的`exit`方法,或`Runtime`类的`halt`方法,并且Java安全管理器允许此操作。 #### 六、JVM的发展历程 - **Sun Classic VM**: 作为Java 1.0版本的一部分发布,是世界上第一款...

    《JAVA语言》作业集答案.pdf

    5. System.exit()的使用,如果在GUI程序中调用,会非正常结束,答案正确。 6. Java applet必须继承JApplet或Applet,答案正确,涉及Applet基础知识。 7. applet方法调用顺序,init、start、paint应依次调用,答案...

    java中main函数解析.docx

    如果需要非正常退出,可以使用`System.exit(int status)`方法。 3. **为何参数类型为`String[]`?** - `String`是最通用的数据类型之一,几乎所有的数据都可以转换为字符串。因此,使用`String`数组来传递命令行...

    API的使用、数组的高级操作

    例如,`System.exit(0)`方法可以用来优雅地退出Java虚拟机(JVM),传入的参数0表示正常退出,非零参数通常表示异常情况。`System.currentTimeMillis()`方法返回当前时间的毫秒值,这对于时间戳的处理非常有用。`...

    编写跨平台Java程序注意事项

    应该使用`destroy()`方法来结束独立进程,或者在多线程程序中关闭所有非守护线程,仅在异常情况下使用`System.exit()`。 5. 限制本地方法和本地代码:尽量避免使用本地方法(Native Method)和本地代码,因为它们...

    《Java核心技术卷1》 学习笔记.doc

    - 必须通过`System.exit(0)`结束程序以确保所有线程均终止。 **3.8 数字格式化** - `NumberFormat`类用于数字、货币、百分比等格式化输出。 **3.9 控制流结构** - 与C/C++的不同之处在于Java没有`goto`语句。 - ...

    Java异常处理中的一些特殊情况举例

    例如在`Test`类的`main`方法中,`System.exit(0)`会立即结束程序的执行,跳过`finally`块和之后的代码。这是因为`System.exit()`是Java的内置方法,它会强制关闭JVM,从而停止所有线程,包括清理工作。然而,如果...

    解析Runtime中shutdown hook的使用详解

    1. 显式调用`System.exit(int)`方法。 2. 用户在控制台上按下`Ctrl+C`,这通常会发送一个`SIGINT`信号给JVM。 3. 当所有的非守护线程(non-daemon threads)都结束时,JVM也会退出。 4. 用户注销或系统关机,这取决...

    10个Java经典的Main方法面试题

    10. **Main方法的终结**:在Java中,main方法可以正常结束,当程序执行完main方法内的所有语句,或者遇到return语句时,main方法会结束,程序也随之终止。如果需要在main方法结束后执行某些清理工作,可以使用...

    Java新手上路常见问题

    System.exit(0); } } ``` 1. **编译步骤**: ```bash [HelloWorld]$ javac HelloWorld.java ``` 2. **运行步骤**: ```bash [HelloWorld]$ java HelloWorld ``` 如果出现找不到类的错误,可以检查`...

    java-编写跨平台Java程序注意事项

    - 当需要终止Java虚拟机(JVM)时,应使用`java.lang.System.exit(int status)`方法。这不仅能正确关闭JVM,还能确保资源被释放。 - 注意不要在多线程环境中随意调用`System.exit()`,因为这可能会导致某些线程没有...

    Java复习大纲

    18. 终止线程:调用`System.exit()`、`Thread.stop()`(不推荐)、线程内部抛出未捕获异常或主线程结束。 19. 互斥与同步:互斥确保同一时间只有一个线程访问资源,同步是多个线程按特定顺序执行。 20. 容器:存储...

    关于 Tomcat进程意外退出的问题解析

    2. **非正常关闭的迹象**: 如果日志中没有显示正常的关闭序列,而是直接记录了`pause`、`stop`和`destroy`,这通常意味着Tomcat没有通过正常途径退出。在这种情况下,可能是由于`shutdownhook`被触发或者系统信号...

    Java语言程序设计:ch06 异常处理、递归和单体程序设计方法.ppt

    异常(Exception)是程序流程中的非正常事件,可能是由于非法操作、资源不足或其他不可预见的问题引起的。Java将异常分为两类:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。 受检异常在...

    Oozie之JavaAction测试实例

    需要注意的是,主Java类不应调用`System.exit(int n)`,因为这会使JavaAction进入错误状态,不论退出码为何值。 #### 三、JavaAction配置 JavaAction需要配置以下信息: 1. **job-tracker**: Hadoop JobTracker的...

    ShutdownHook-Java优雅停机解决方案.docx

    * 代码执行结束,JVM 正常退出 * 应用代码中调用 System#exit 方法 * 应用中发生 OOM 错误,导致 JVM 关闭 * 终端中使用 Ctrl+C(非后台运行) ShutdownHook 是 Java 语言提供的一种优雅停机解决方案,可以使我们的...

Global site tag (gtag.js) - Google Analytics