首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(obj == null) vs (null == obj)?

(obj == null) vs (null == obj)?
EN

Stack Overflow用户
提问于 2011-07-30 14:08:50
回答 6查看 24.5K关注 0票数 47

我的老板说我应该使用null == obj,因为它比obj == null好,但他不记得为什么要这么做。有什么理由使用null == obj吗?

我感觉到了..。对面!

在谷歌上搜索了一段时间后,我发现的唯一一件事是:

在C中,它防止您意外地在条件结构中键入(obj = null) .

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-07-30 14:10:47

您不能通过键入null来意外地将obj = null分配给obj = null。但是,这是C时代的一种回忆,在java中是不可能的,因为=表达式返回赋值的右侧。因为null不是boolean,所以编译器会抱怨。

我会试着向我的老板解释一次,演示一下。如果他还不同意你的意见,那就做吧。和你的老板吵架是件小事。

票数 46
EN

Stack Overflow用户

发布于 2015-02-11 19:50:05

如果使用if(null==obj)编译文件,则生成的字节代码为if_acmpne,如果是if(obj==null),则为ifnonnull。现在,在if_acmpne中,两个操作数从堆栈中弹出并被检查,它们不相等(在本例中是nullobj),而在ifnonnull中,如果它不是null,则只有一个操作数被弹出和检查。从这一点看,ifnonnull似乎更好,因为它只涉及弹出一个操作数。

参考资料:http://www.artima.com/underthehood/flowP.html

票数 22
EN

Stack Overflow用户

发布于 2011-07-30 14:14:20

在Java中,没有区别。

我更喜欢(obj==null),因为它感觉更自然。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6883646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档