栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是短路?在Java中编程时如何使用短路?[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是短路?在Java中编程时如何使用短路?[重复]

短路是确定结果后立即停止对表达式求值的地方。因此,例如:

if (a == b || c == d || e == f) {    // Do something}

如果

a == b
true
,则
c == d
并且
e == f
根本不会进行评估,因为表达式的结果已经确定。如果
a == b
为假,
c == d
则被评估;如果是真的,则
e == f
永远不会进行评估。这似乎没有什么区别,但请考虑:

if (foo() || bar() || baz()) {    // Do something}

如果

foo()
返回true,那么
bar
baz
被从来没有所谓,因为表达式的结果已经确定。所以,如果
bar
还是
baz
已经不仅仅是返回的东西(一个其他一些效果副作用),这些影响不会发生。

短路的一个很好的例子与对象引用有关:

if (a != null && a.getFoo() != 42) {    // Do something}

a.getFoo()
通常会抛出一个
NullPointerException
如果
a
null
,但由于表达短路,如果
a != null
false
,该
a.getFoo()
部分不会发生,所以我们没有得到一个异常。

请注意,并非所有表达式都是短路的。的

||
&&
运营商被短路,但
|
&
不是,也不是
*
/
; 实际上大多数操作员都不是。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号