C言語(Bedrock版)は機械語に翻訳(コンパイル)した状態で直接CPUが実行する
Javaは機械語へリアルタイム翻訳しながら間接的にJava仮想マシンが実行するのでその分ロスがある

Javaは翻訳しながら実行されるのでソースコードのどの部分でバグが起きたか解りやすく、バグが起きても対応しやすい
あとは仮想マシンさえあればどの環境でも同じ動作が期待できるという利点がある