当前位置: 首页 > 面试题库 >

Java:与等效逻辑运算符相比,按位OR和AND更快吗?

葛永丰
2023-03-14
问题内容

剪切并干燥…虽然我从来没有足够的逻辑运算来使其成为性能瓶颈-我想知道,相对于同名的逻辑运算符,我会更好地使用按位和(&)和按位或(|)
(&&和||)(如果可能)?可能由于我不知道将Java转换为程序集以查看操作数的库而开始提出这个问题。


问题答案:

按位运算符即使在Java代码执行中也避免了分支指令。结果,您没有昂贵的分支预测遗漏,也没有任何跳转。

根据我的经验,在经常执行的代码中使用它们时,速度 可以 明显提高。但是请记住,按位运算符不是短路运算符,在某些情况下,这实际上可能会对性能产生负面影响。

就是说,此类微优化仅应在不得已时使用,并且只有在探查器告诉您这样做之后才可使用-可读性和可维护性是第一位的。



 类似资料:
  • 问题内容: 下面的两个语句是否等效? 和 我可以使用某种真值表来验证这一点吗? 问题答案: 优先于,因此,即使 与…不同 因为那将被执行为 并且想要使它们相同,是以下内容(使用括号覆盖优先级规则): 这是一个示例说明:

  • 问题内容: 我对使用Python中的逻辑运算符获得的结果感到有些困惑。我是一个初学者,正在学习一些书籍,但是它们并没有像我所希望的那样详尽地解释。 这是我自己的代码: 似乎只是输出两个变量。 因此,我添加了另一个变量整数。然后我打印并得到以下输出: 后台Python到底是怎么回事?为什么输出的不是7或5、2之类的。 问题答案: Python布尔运算符返回最后计算的值,而不是True / False

  • 问题内容: 什么逻辑运营商之间的不同,和位类似物,在使用?各种解决方案的效率是否存在差异? 问题答案: 逻辑运算符对逻辑值进行运算,而按位运算符对整数位进行运算。停止考虑性能,并按其预期目的使用它们。

  • 逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。 逻辑运算符是对布尔型变量进行运算,其结果也是布尔型,具体如表 1 所示。 表 1 逻辑运算符的用法、含义及实例 运算符 用法 含义 说明 实例 结果 && a&&b 短路与 ab 全为 true 时,计算结果为 true,否则为 false。 2>1&&3<4

  • 本文向大家介绍详解JavaScript逻辑And运算符,包括了详解JavaScript逻辑And运算符的使用技巧和注意事项,需要的朋友参考一下 在JavaScript中,逻辑 AND 运算符用双和号(&&)表示   下面的真值表描述了逻辑AND运算符的行为: 需要说明的是:逻辑AND运算的运算数可以是任何类型的,不止是Boolean值,如果某个运算数不是原始的Boolean型值,逻辑AND运算并不

  • 主要内容:AND 运算符,语法,实例,OR 运算符,语法,实例SQLite 的 AND 和 OR 运算符用于编译多个条件来缩小在 SQLite 语句中所选的数据。这两个运算符被称为连接运算符。 这些运算符为同一个 SQLite 语句中不同的运算符之间的多个比较提供了可能。 AND 运算符 AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。使用 AND 运算符时,只有当所有条件都为真(true)时,整个条件为真(true)。例如,只