回顾旧代码的更改,我看到了一个非常有趣的更改。有区别:
if(retValue.equals("") || retValue == null){
if(retValue == null || retValue.equals("")){
有什么建议么?与jvm有什么区别?
谢谢。
最佳答案
||
和&&
运算符是“惰性的”:JVM将在确定结果后立即停止对表达式的求值。
对于||
,一旦其中一个操作数为true ==>整个表达式为true,它将立即停止。
对于&&
,一旦其中一个操作数为false ==>,则整个表达式为false,它将立即停止。
引用JLS #15.24(强调我的):
条件或运算符||
运算符与|
(第15.22.2节)类似,但是仅当其左侧操作数的值为false时才评估其右侧操作数。