首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪个性能更好: test != null或null != test

哪个性能更好: test != null或null != test
EN

Stack Overflow用户
提问于 2012-05-08 15:38:41
回答 8查看 15.5K关注 0票数 13

考虑以下两行代码

代码语言:javascript
复制
if (test ! = null)

代码语言:javascript
复制
if (null != test)

在性能方面,上面两个语句有什么不同吗?我见过许多人使用后者,当被问到时,他们说这是没有确凿理由的最佳实践。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-05-08 15:41:55

没什么区别。

第二个原因仅仅是因为C/C++程序员总是做赋值而不是比较。

例如。

代码语言:javascript
复制
// 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编译器会产生编译错误。

所以我个人更喜欢第一个,因为可读性,人们倾向于从左到右阅读,它读成if test is not equal to null而不是null is not equal to test

票数 22
EN

Stack Overflow用户

发布于 2012-05-08 15:41:56

它们是完全一样的。第二个在使用equals时是有意义的:

代码语言:javascript
复制
if("bla".equals(test))

永远不能抛出NullPointerException,而:

代码语言:javascript
复制
if(test.equals("bla")) 

能。

票数 22
EN

Stack Overflow用户

发布于 2012-05-08 15:41:29

没有性能差异,但我个人发现第二个令人困惑。

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

https://stackoverflow.com/questions/10494563

复制
相关文章

相似问题

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