回顾一段旧代码的变化,我看到了一个非常有趣的变化。有区别:
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/