System.exit(int status)
其功能主要是調用
Runtime.getRuntime().exit(status);
終止當前正在運行的Java慮擬機,exit(0)代表正常退出,其它數值爲非正常退出
大體意思如下:
終止當前正在運行的Java虛擬機並啓動關閉序列。此方法不會返回正常。參數作爲一個狀態碼;按照慣例,一個非零的狀態碼錶示異常終止。
虛擬機的停止順序分兩個階段。
在第一階段,如果在啓動時,指定了一些關閉鉤子的話,如果有的話,啓動註冊的關閉鉤子,允許併發運行直到完成。在第二階段的所有未調用的finalizers,在finalization-on-exit允許的情況下啓動回收。一旦完成這個虛擬機停止。
如果爲非0的話,如果這個方法被調用後,虛擬機已開始關閉序列如果關閉鉤子正在運行,此方法將無限期阻塞。如果關將鉤子運行完成,並且未調用的finalizers,在finalization-on-exit允許的情況下啓動回收完成,虛擬機停止。
如果爲0爲正常退出,Java GC進行垃圾回收,直接退出了。
以上爲個人理解,大神們要是看到理解不對的地方,還請指正。