java中 & 和 &&的區別

    測試 java中&和&&表示邏輯“與”的運算符的區別:

try {
    String str = null;
    if(  null != str  &  str.equals("")){
    }
} catch (Exception e) {
    System.out.println("輸出異常信息爲"+e.getMessage()+",則 if的條件 null != str  &  str.equals(\"\") & 兩邊的都會執行");
}
try {
    String str = null;
    if(  null != str  &&  str.equals("")){ //會輸出異常信息,即表明後面的str.equals("")也執行了
    }else{
        System.out.println("判斷正常,沒有執行 str.equals(\"\"),即&&具有短路功能");
    }
} catch (Exception e) {
    System.out.println("輸出異常信息"+e.getMessage());
}

console控制檯輸出如下:

 輸出異常信息爲null,則 if的條件 null != str  &  str.equals("") & 兩邊的都會執行
         判斷正常,沒有執行 str.equals(""),即&&具有短路功能

        結論,可以看出 & 的時候,條件的兩邊都執行了,所以會拋出null指針的異常;而 && 執行到  null != str 的時候,判斷條件不匹配後,就直接就不執行 str.equals("")這個方法了,即表明 && 具有短路功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章