考虑以下两行代码
if (test ! = null)和
if (null != test)在性能方面,上面两个语句有什么不同吗?我见过许多人使用后者,当被问到时,他们说这是没有确凿理由的最佳实践。
发布于 2012-05-08 15:41:55
没什么区别。
第二个原因仅仅是因为C/C++程序员总是做赋值而不是比较。
例如。
// 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。
发布于 2012-05-08 15:41:56
它们是完全一样的。第二个在使用equals时是有意义的:
if("bla".equals(test))永远不能抛出NullPointerException,而:
if(test.equals("bla")) 能。
发布于 2012-05-08 15:41:29
没有性能差异,但我个人发现第二个令人困惑。
https://stackoverflow.com/questions/10494563
复制相似问题