什么情况下最好使用无条件 AND(& 而不是 &&)

2024-01-10

我想知道Java中的一些情况(或者更一般地说: 在编程中)当在布尔表达式中首选使用无条件时AND (&) 而不是条件版本 (&&).

我知道它们是如何工作的,但我无法考虑使用单个的情况&是值得的。


我在现实生活中发现了一些情况,其中表达式的两边都非常便宜,因此它节省了一两纳秒以避免分支并使用无条件&代替&&。 (不过,这些都是性能极高的数学实用程序;我几乎永远不会在其他代码中使用它,而且如果没有详尽的基准测试来证明它更好,我也不会这样做。)

(举具体例子,x > 0将会非常便宜并且无副作用。为什么要冒着分支预测错误的风险来避免进行如此便宜的测试呢?当然,因为它是一个boolean无论如何,最终结果都会在分支中使用,但是if (x >= 0 && x <= 10)涉及两个分支,并且if (x >= 0 & x <= 10)仅涉及一项。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么情况下最好使用无条件 AND(& 而不是 &&) 的相关文章

随机推荐