Java为什么我们通常使用|| 超过|?有什么区别?
我只是想知道为什么我们通常||
在两个布尔之间使用逻辑OR
而不是按位OR |
,尽管它们都运行良好。
我的意思是,请看以下内容:
if(true | true) // passif(true | false) // pass
if(false | true) // pass
if(false | false) // no pass
if(true || true) // pass
if(true || false) // pass
if(false || true) // pass
if(false || false) // no pass
| |
我们可以|代替使用||吗?与&和相同&&。
回答:
如果使用||
和&&
形式,而不是这些运算符的|
和&
形式,则Java不会费心地单独评估右手操作数。
多数情况下,是否要缩短评估是一个问题。
说明短路好处的一个好方法是考虑以下示例。
Boolean b = true;if(b || foo.timeConsumingCall())
{
//we entered without calling timeConsumingCall()
}
正如Jeremy和Peter提到的,短路的另一个好处是空引用检查:
if(string != null && string.isEmpty()){
//we check for string being null before calling isEmpty()
}
以上是 Java为什么我们通常使用|| 超过|?有什么区别? 的全部内容, 来源链接: utcz.com/qa/405766.html