【发布时间】:2013-06-17 08:43:25
【问题描述】:
迄今为止发布的任何 java 版本之间是否存在性能差异
foo != null
和
null != foo?
我个人认为上述两种形式的对象空值检查的行为没有任何变化,但不确定哪一种表现更好。我知道差异会非常小,如果有的话,但我想知道为什么有人以这种方式编写所有代码。
【问题讨论】:
-
我不存在性能差异。如果有,应该很难衡量。
-
应该没有性能差异,但形式可读性角度 foo != null 更好。因为通常在左侧,我们将要比较的值与右侧的值进行比较。通常我们会将我们的对象(如 foo)与 null 进行比较。从逻辑上讲,没有必要针对 foo 检查 null。
-
有关尤达条件的更多信息,请参阅here。在某些 C 圈子中,它们作为一种避免意外赋值而不是比较的方法非常流行(编译器错误,因为常量不是左值)。性能方面,我会很惊讶地看到它们的表现不同。
-
我发现了一个非常有趣的结果(在我的回答中有详细说明)。
标签: java performance optimization syntax null