我想了解 Java 中的一些案例(或更一般地说:
在编程中)当在 boolean 表达式中首选使用无条件 AND
时( &
) 而不是条件版本 ( &&
)。
我知道它们是如何工作的,但我想不出使用单个 &
的情况。值得。
最佳答案
我在现实生活中发现了表达式的两边都非常便宜的情况,因此它缩短了一两纳秒以避免分支并使用无条件的 &
而不是 &&
。 (不过,这些都是非常高性能的数学实用程序;我几乎不会在其他代码中使用它,而且如果没有详尽的基准测试来证明它更好,我也不会这样做。)
(举个具体的例子,x > 0
将非常便宜且无副作用。为什么还要冒着分支错误预测的风险来避免无论如何都会如此便宜的测试?当然,因为它是 boolean
最终结果反正要在一个分支中使用,但是if (x >= 0 && x <= 10)
涉及两个分支,而if (x >= 0 & x <= 10)
只涉及一个。)
关于java - 在哪些情况下最好使用无条件 AND(& 而不是 &&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411907/