2010年12月5日星期日

Java为什么会死

我承认有点标题党,准确的说应该是“Java程序为什么会退出”,自己随便总结几条,欢迎大家补充。
  • 调用了System.exit
  • 所有非后台线程运行结束或异常退出
  • 线程内有没有捕获的异常,抛到了最外层,线程推出。如一个简单的main程序,出现一个未捕获的异常,程序就退了。但在GUI程序中一般不会,因为窗口线程总在。
  • 遇到各种致命error,内存方面问题常见的是 OutOfMemoryError,影响整个jvm,导致退出。
  • 无线递归导致线程堆栈溢出 StackOverflowError ,只影响该线程。
  • 界面死锁,程序没反应。程序没有退出,但这时也只能kill掉了

没有评论: