2012-11-10 71 views
2

可能重複:
Where and why JVM checks that the return type of entry method main(String args[]) is void and not anything else?
return type of main in java爲什麼java的主要方法不應該有返回值?

諮詢這兩個問題What's the meaning of the return value of int main(), and how to display it? & What should main() return in C and C++?後,我想出了另一個問題:

爲什麼Java程序的主要方法應返回void,但C/C++程序的主函數應該返回int?

+1

簡而言之,Java程序並沒有結束,因爲'main'方法(運行在主線程上)結束。當所有線程結束時,它結束**。因此對'main'的返回值沒有任何意義。 –

回答

2

Java規範:

的方法主要必須聲明publicstatic,和void。它必須接受一個單一的參數,它是一個字符串數組。

並進一步:

的程序終止其所有活動和退出時的兩件事情之一發生:

  • 所有這一切都沒有守護線程終止線程。
  • 某些線程調用類Runtime或類System的退出方法,並且安全管理器不禁止退出操作。

正如你可以看到主要的返回類型可能是毫無意義,由於其他線程的退出。

+1

問題是關於爲什麼,但不是什麼。 –

+1

@UniMouS:因爲這就是它的定義。 –

相關問題