JAVAのmain関数とC言語のmain関数についてご教示いただけると幸いです。

JAVAではpublic static void main(String...)と書き、
C言語では、int main(void)と書きますが

JAVAでは、main関数は戻り値なしで返すが、
C言語では、main関数は必ず0を返すというのが当たり前のことなのでしょうか?