java - jvm 在这两条 java 行 : 上有什么区别吗

标签 java if-statement core

回顾一段旧代码的变化,我看到了一个非常有趣的变化。有区别:

if(retValue.equals("") || retValue == null){

if(retValue == null || retValue.equals("")){

有什么建议吗?与 jvm 有什么区别?

谢谢。

最佳答案

||&& 运算符是“惰性”运算符:JVM 会在确定结果后立即停止对表达式的求值。

  • || 的情况下,一旦其中一个操作数为真,它就会停止 ==> 整个表达式都为真。
  • && 的情况下,一旦其中一个操作数为假,它将立即停止 ==> 整个表达式为假。

引自JLS #15.24 (强调我的):

The conditional-or operator || operator is like | (§15.22.2), but evaluates its right-hand operand only if the value of its left-hand operand is false.

关于java - jvm 在这两条 java 行 : 上有什么区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11614070/

相关文章:

python - Django 'if settings.DEBUG:' 是什么意思

Vim 内联重映射以检查第一个字符

c# Environment.ProcessorCount 并不总是返回逻辑处理器的完整数量,为什么?

linux - 核心转储文件名使用 core_pattern %e.%p.core 获取线程名称而不是可执行文件名称

java - 用对象对列表进行排序?

java - 我应该更改/更改 xjc 生成的 java 文件吗?

java - 在运行时修改代码以记录 Java 中的返回值?

java - 在没有大量 if else 的情况下将 VBA 条件 Switch 转换为 Java

ruby-on-rails - 如何在模块中为类方法起别名?

java - 对于 ArrayList,通过引用传递不会在 RMI 中返回