在
&&与
||运营商“短路”,这意味着如果没有必要,他们不评价的右手边。
在
&与
|运营商,如逻辑运算符时,始终评估两侧。
每个 *** 作员只有一种短路情况,它们是:
false && ...
-不必知道右侧是什么,结果必须是false
true || ...
-不必知道右侧是什么,结果必须是true
让我们在一个简单的示例中比较行为:
public boolean longerThan(String input, int length) { return input != null && input.length() > length;}public boolean longerThan(String input, int length) { return input != null & input.length() > length;}
第二个版本使用非短路运算符
&,并将抛出
NullPointerExceptionif inputis null,但第一个版本将
false无例外地返回;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)