if a a null if a a null ,哪個更好?

時間 2021-06-01 23:33:03

1樓:風中的雪糕

把這類常用判斷,寫個工具類,第乙個好點.

public

static

boolean

isNull

(String

str)

public

static

boolean

isFull

(String

str)

2樓:龍佳源科技

兩個表示式從效能上來說是一樣好,只不過習慣上使用前者。

知識回顧:解釋&和&&、|和||的區別。

(1)邏輯運算

與運算分為普通與和短路與兩種

普通與:所有判斷條件都要判斷;

短路與:如果前面判斷返回了false,後面不再判斷,最終結果就是false;

或運算分為普通或與短路或兩種

普通或:所有判斷條件都要判斷;

短路或:如果前面判斷返回了true,後面不再判斷,最終結果就是true;

(2)位運算

分為位與運算(&)和位或運算(|)。&&和||不用在位運算上。

綜上所述:

拋開題主這個問題單純的說短路與(&&)和短路或(||)誰更好還是要分情況看:

(1)如果各個邏輯表示式真假無序且真假參半,那麼短路與(&&)和短路或(||)效能相當,不分上下。

(2)如果各個邏輯表示式真假無序且真多假少,那麼使用短路與(&&)不如短路或(||),因為遇上真的概率大,短路或(||)有一真為真的特點,所以在判斷時不需要將括號內的所有邏輯表示式進行逐一判斷,這樣提高了運算速度。

(3)如果各個邏輯表示式真假無序且真少假多,那麼使用短路與(&&)比短路或(||)好,因為遇上假的概率大,短路與(&&)有一假為假的特點,所以在判斷時不需要將括號內的所有邏輯表示式進行逐一判斷,這樣提高了運算速度。

(4)如果各個邏輯表示式真靠左假靠右,那麼使用短路與(&&)不如短路或(||),因為遇上真的概率大,短路或(||)有一真為真的特點,所以在判斷時不需要將括號內的所有邏輯表示式進行逐一判斷,這樣提高了運算速度。

(5)如果各個邏輯表示式假靠左真靠右,那麼使用短路與(&&)比短路或(||)好,因為遇上假的概率大,短路與(&&)有一假為假的特點,所以在判斷時不需要將括號內的所有邏輯表示式進行逐一判斷,這樣提高了運算速度。

為了便於觀察,我們故意書寫乙個錯誤程式:

範例1:觀察普通或操作(|):

在本程式中使用普通「|」完成了操作,但程式執行時出現了錯誤,即程式中給出的兩個判斷條件都執行了。

範例2:觀察短路或操作(||):

通過上述例子看出,前面條件返回true,不管後面是任何條件最終結果都是true,所以後面表示式不再執行,程式也沒有任何異常產生。

但前後邏輯表示式順序調換後程式依舊產生錯誤,證明是由左向右依次判斷的。

範例3:觀察普通與(&):

程式出現錯誤,說明判斷了第二個表示式。

範例4:觀察短路與(&&):

結果出現問號,說明沒有判斷第二個表示式。

回到題主的問題上來

無論專案需要傳的值a==""和a==null的概率大還是小,也無論a==""多還是a==null多兩個表示式if(a!=""&&a!=null){} if(!

(a==""||a==null)){}效能相當,一般習慣上用前者。

開車開山路和高速哪個更容易,哪個更危險?

淡淡 山路應該會難駕駛一些,山路彎多坡陡,而且視線不好。高速雖然速度快,但是大家的速度都是一樣的,只要保持專心駕駛就沒有那麼困難了。山路行車駕駛技巧 1 車速和車距 不管是山路還是其它特殊情況下車速和車距永遠是要注意的第一位 特別是山路駕駛,視線阻礙較大,上下坡如果跟車距離過近則容易剎不住車導致事故...

kindle switch iPad,哪個更適合壓泡麵?

lo lo 沒有Switch,只用過kindle和iPad蓋過,覺得效果無差,從經濟學角度,kindle最便宜,假使受熱水汽進入搞壞了機子,kindle損失也是最小的,推薦kindle 小閒 Kindle最適合,pad的話,有點大,mini除外,ns就算了吧,這玩意都不平。除了ns,其他兩個我還真壓...

愛而不得和曾經擁有哪個更遺憾,哪個更扎心

一百厘公尺擎天柱 這個問題問經歷過的人,愛而不得的人會覺得曾經擁有過,曾擁有過的人會覺得不如愛而不得。我是那個愛而不得的人,我也是因為我的愛而不得相信凡事都有因果報應。不知道是不是真的我曾經傷害那些愛我的而我卻不愛的人太深了,報應讓我愛的人從沒有愛過我。整三年,就算我在這三年的最後一刻才擁有她,至少...