亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是短路?在Java中進行編程時如何使用短路?

什么是短路?在Java中進行編程時如何使用短路?

嗶嗶one 2019-10-31 13:13:01
什么是短路?在Java中進行編程時如何使用短路?
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

短路評估意味著在評估布爾表達式(邏輯AND和OR)時,只要找到滿足或否定該表達式的第一個條件,就可以立即停止。


例如,假設您正在評估OR帶有多個子表達式的邏輯,每個子表達式的評估成本非常高:


if (costlyTest1() || costlyTest2() || costlyTest3()) { // ...

一旦找到返回的JVM,JVM就可以停止評估“ costlyTest”函數true,因為這將滿足布爾表達式。因此,如果costlyTest1()返回true,則其他測試將被跳過。類似地:


if (costlyTest1() && costlyTest2() && costlyTest3()) { // ...

JVM一旦找到返回的函數就可以停止評估函數false,因為它也滿足表達式。因此,如果costlyTest1()返回false,則不會調用其他函數。


這些規則與布爾表達式的任何嵌套級別有關,可以利用它們來避免不必要的工作,如上面的示例所示。


查看完整回答
反對 回復 2019-10-31
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

短路表達式的求值意味著在找到表達式的值之前,只需要對表達式的一部分進行求值。例如:


a == null || a.size() == 0

如果a為is null,a.size() == 0則不會對子表達式進行求值,因為布爾運算符的||求值true是其操作數之一是否為true。


同樣,對于此表達式:


a != null && a.size() > 0

如果a為is null,a.size() > 0則將不對will進行求值,因為布爾運算符的&& 求值false是其操作數之一是否為false。


在上面的示例中,布爾運算符&&和||被稱為短路,因為如果第一個操作數的值足以確定整個表達式的值,則第二個操作數可能不會被求值。為了進行比較,&和|操作數是等效的非短路布爾運算符。


查看完整回答
反對 回復 2019-10-31
  • 3 回答
  • 0 關注
  • 918 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號