多分、==と=の話をしているんだと思う。
比較に使うはずのif文の中でも代入できるのはバグの元だよねーって話。ちなみにjavaでもCでもif文の中に代入は存在できるので、そういった意味でどっちも優れてない。
Javaの場合、エラーにならないのはbooleanを代入した場合だけ。つまり、condというboolean変数があったとして、
if (cond == true) {} if (cond == false) {}
のような書き方をしたときだけが代入にしてしまうミスが発生するわけ。
でもそんな書き方はありえない。condがbooleanの場合の通常の判定文は
if (cond) {} if (!cond) {}
のように書く。だからJavaでifの条件式に代入を書いてしまってミスることはまずない。Cと比べて一緒というのは明らかにJavaをわかっていないと思う。