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("")这个方法了,即表明 && 具有短路功能。

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