Java为什么我们通常使用|| 超过|?有什么区别?

我只是想知道为什么我们通常||在两个布尔之间使用逻辑OR 而不是按位OR |,尽管它们都运行良好。

我的意思是,请看以下内容:

if(true  | true)  // pass

if(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

回到顶部