Android中调用System.exit(0)
来源:互联网 发布:淘宝主店铺子店铺 编辑:程序博客网 时间:2024/05/17 06:57
public class HelloGoodbye{
try{
System.out.println(“Hello World”);
System.exit(0);
} finally {
System.out.println(“Goodbye World”);
}}
上面这段代码会打印出什么呢?要知道答案需要了解System.exit(0)这个方法在执行过程中到底发生了哪些事情。API文档上描述System.exit方法会导致当前运行线程停止并使其它线程都终止,因此上面这段代码中的finally代码块不会被执行。
进一步探索System.exit被调用后的行为,它在虚拟机在退出前会执行两个清除任务。第一,它会执行所有通过Runtime.addShutdownHook注册的shutdown hooks.它能有效的释放JVM之外的资源。第二,执行清除任务,运行相关的finalizer方法终结对象。
如果需要在调用System.exit方法后仍然打印出“Goodbye World”,可采用如下的方法:
System.out.println(“Hello World”);
Runtime.getRuntime().addShutdownHook(
new Thread(){
public void run(){
System.out.println(“Goodbye world”);
}
}
)
System.exit(0);
在Tomcat的源代码中也有用到shutdownHook,保证了Tomcat在运行时,收到Ctrl+c命令终止JVM进程时,能够正确退出。
System.exit(0)和System.exit(1)区别:
System.exit(0)是将你的整个虚拟机里的内容都停掉了,而finish()只是退出了activity,并没有退出应 用,Application还是存在于内存中的,除非被系统回收。无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西。关 于finished与System.out的区别,请参考:http://blog.sina.com.cn/s/blog_48e2ea3401017m3f.html
System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序
System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点:return是回到上一层,而System.exit(status)是回到最上层
- Android中调用System.exit(0)
- Android中调用System.exit(0)和android中finish()与system.exit(0)的区别
- android中System.exit(0)和System.exit(1)区别
- Android中System.exit(0)退出失败
- android system.exit(0)后会重启
- android中finish()与system.exit(0)的区别?
- android中finish()与system.exit(0)的区别?
- android中finish()与system.exit(0)的区别?
- android中finish()与system.exit(0)的区别
- android中finish()与system.exit(0)的区别?
- android中finish()与system.exit(0)的区别?
- android中finish()与system.exit(0)的区别
- android中finish()与system.exit(0)的区别?(转载)
- android开发中finish()、onDestroy()、System.exit(0)的区别
- Android中killProcess()、System.exit(0)及finish()的区别
- android中finish()与system.exit(0)的区别?
- Android中finish和System.exit(0)的区别
- android中 finish()、onDestory()与system.exit(0)的区别
- [leetcode] 173.Binary Search Tree Iterator
- 【Java】只允许使用加号,实现整数的减法,乘法,除法
- Android context空指针异常
- 如何合并多个excel报表到同一表中,只保留一个表头
- POJ
- Android中调用System.exit(0)
- 2012年5月SAT香港真题解析
- PHP 文件操作
- JavaScript (一)
- Android中Java和JavaScript交互
- deprecated preg_replace the e modifier is deprecated use preg_replace_callback instead in
- Sublime Text 3 : keyboard shortcut to reveal file in finder
- js面试题--js的继承
- linux系统用户下的crontab任务不执行问题处理