说法一:
例如有一个String型变量str,它可以是某一个方法的返回值,因此它可能返回null。
而当返回为null时,运行str.equals("xxx")就会报出一个空指针异常,NullPointerException。
而写成xxx.equals(str)则不会报异常。
因此写成后者(即xxx.equals(str))的形式比较好。那个变量可能在意外情况下会为null的。
说法二:
在java中都是一样的,没有分别,但在C++中就是天壤之别
因为程序员经常会犯低级失误
把int id == 1 写成int id = 1; 少写一个等号
在 c++中
if(id=1){
}
的写法编译器不会报错,因为
id=1 也可以代表真值!,所以这里出了一个天大的错误,但程序员并不知道!也很难找到!
所以C++程序员要习惯把常量放在前面
这样写的就是一个良好的习惯:
if(1==c){
}
如果写成if(1=c){}那编译器就会报错,从而程序就知道写错了
由于很多C++程序员也转行做了java,所以他们仍习惯于那种写法
采用null==c 的这种写法非常值得推荐,这样同样的代码拿到c++里也不需怎么改