布尔值相等:0 == a,操作数顺序是否重要?

9bl*_*lue 3 java equals-operator

我看到有些人在他们的代码中写了这个布尔值相等,我通常把常量放在"=="运算符的右边.我注意到0 == a比a = 0更快的操作.有人可以解释为什么吗?它的最佳实践是什么?

Nik*_* B. 7

它是C/C++世界的遗物.

在C,写的好处0 == aa == 0是,你可以不小心写a = 0代替,这意味着完全不同的东西.由于0是左值,0 = a是非法的.

在Java中,推理不适用,因为它a = 0也是非法的(因为0不是布尔值,a不能是布尔值).虽然它并没有受到伤害,所以选择哪一个并不重要.

性能与此完全无关.