我的老板说我应该使用null == obj,因为它比obj == null好,但他不记得为什么要这么做。有什么理由使用null == obj吗?
我感觉到了..。对面!
在谷歌上搜索了一段时间后,我发现的唯一一件事是:
在C中,它防止您意外地在条件结构中键入(obj = null) .
发布于 2011-07-30 14:10:47
您不能通过键入null来意外地将obj = null分配给obj = null。但是,这是C时代的一种回忆,在java中是不可能的,因为=表达式返回赋值的右侧。因为null不是boolean,所以编译器会抱怨。
我会试着向我的老板解释一次,演示一下。如果他还不同意你的意见,那就做吧。和你的老板吵架是件小事。
发布于 2015-02-11 19:50:05
如果使用if(null==obj)编译文件,则生成的字节代码为if_acmpne,如果是if(obj==null),则为ifnonnull。现在,在if_acmpne中,两个操作数从堆栈中弹出并被检查,它们不相等(在本例中是null和obj),而在ifnonnull中,如果它不是null,则只有一个操作数被弹出和检查。从这一点看,ifnonnull似乎更好,因为它只涉及弹出一个操作数。
参考资料:http://www.artima.com/underthehood/flowP.html
发布于 2011-07-30 14:14:20
在Java中,没有区别。
我更喜欢(obj==null),因为它感觉更自然。
https://stackoverflow.com/questions/6883646
复制相似问题