instance == null 与 null == instance 的区别

说法一:

例如有一个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++里也不需怎么改 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值