没有不同。
第二个仅仅是因为 C/C++ 程序员总是做赋值而不是比较。
例如
// no compiler complaint at all for C/C++
// while in Java, this is illegal.
if(a = 2) {
}
// this is illegal in C/C++
// and thus become best practice, from C/C++ which is not applicable to Java at all.
if(2 = a) {
}
而java编译器会产生编译错误..两种形式之间没有真正的不同。没有性能问题,但有以下注意事项:
第一种形式对于代码阅读器是可读的,因为人们通常从左到右阅读代码。
第二种形式更适合代码编写者,因为在 java 中 = 运算符用于赋值,== 运算符用于测试等效项,但人们通常在 if 语句中使用 = 而不是 ==,因为第二个方法开发人员得到 Compile-Time-Error 因为 null不能在赋值语句的左侧使用。
添加
if (object = null) {
将常量放在 == 左侧的约定在 Java 中并不是很有用,因为 Java 要求 if 中的表达式计算为布尔值,所以除非常量是布尔值,否则会出现编译错误无论哪种方式,您都可以提出论点。(如果它是一个布尔值,你不应该使用 == 反正......)