關於Java中System.exit(n)的理解

System.exit(int status)

其功能主要是調用

Runtime.getRuntime().exit(status);

終止當前正在運行的Java慮擬機,exit(0)代表正常退出,其它數值爲非正常退出


大體意思如下:

終止當前正在運行的Java虛擬機並啓動關閉序列。此方法不會返回正常。參數作爲一個狀態碼;按照慣例,一個非零的狀態碼錶示異常終止。


虛擬機的停止順序分兩個階段。

在第一階段,如果在啓動時,指定了一些關閉鉤子的話,如果有的話,啓動註冊的關閉鉤子,允許併發運行直到完成。在第二階段的所有未調用的finalizers,在finalization-on-exit允許的情況下啓動回收。一旦完成這個虛擬機停止。

如果爲非0的話,如果這個方法被調用後,虛擬機已開始關閉序列如果關閉鉤子正在運行,此方法將無限期阻塞。如果關將鉤子運行完成,並且未調用的finalizers,finalization-on-exit允許的情況下啓動回收完成,虛擬機停止。

如果爲0爲正常退出,Java GC進行垃圾回收,直接退出了。


以上爲個人理解,大神們要是看到理解不對的地方,還請指正。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章