Java中的&和&&

&運算符有兩種用法:①按位與;②邏輯與。
&&運算符是短路與運算。邏輯與跟短路與的差別是非常巨大的,雖然二者都要求運算符左右兩端的布爾值都是 true 整個表達式的值纔是 true。
但是&&之所以稱爲短路運算是因爲,如果&&左邊的表達式的值是 false,右邊的表達式會被直接短路掉,不會進行運算。很多時候我們可能都需要用&&而不是&,例如在驗證用戶登錄時判定用戶名不是 null 而且不是空字符串,應當寫爲

username != null && !username.equals("")

且二者的順序不能交換,更不能用&運算符,因爲第一個條件如果不成立,根本不能進行字符串的 equals 比較,否則會產生 NullPointerException 異常。
注意:邏輯或運算符(|)和短路或運算符(||)的差別也是如此。

發佈了15 篇原創文章 · 獲贊 6 · 訪問量 446
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章