java - 在哪些情况下最好使用无条件 AND(& 而不是 &&)

标签 java optimization

我想了解 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/

相关文章:

Matlab:for 循环向量。奇怪的速度行为?

使用谷歌自定义搜索 API 的 Java 代码

java - 实现一个根据值返回对象的工厂

java - 在 Java Swing 中,如何获得对窗口的 Win32 窗口句柄 (hwnd) 引用?

javascript - 在 JavaScript 中,如何确保 float 保持在 32 位以下?

r - p 色散(maxmin)问题的最佳线性化?

java - 连接 modelica 模型和 Java 模型

java - 如何突出显示 JTextPane 中的所有文本?

计算具有 sin/cos LUT 的 tan

javascript - Javascript 中的两个字母变量名?