问题1:
关于逻辑与“&”和条件与“&&”比起来我觉得逻辑与“&”好象没什么用处,无非是当第一个条件为false时还会将第二个条件运行一次,可是这有什么
用啊?我还觉得这么做浪费资源呢??问题2:
逻辑或“|”和条件或“||”这两个好象连功能上区别都没有吧,那要逻辑或“|”用来干吗??

解决方案 »

  1.   

    &和|是位运算符
    &&和||是逻辑运算符!
      

  2.   

    | 和 & 即可作位运算符又可以作逻辑运算符,当两边操作数是整型的表达式时完成的是位运算,当两边是逻辑表达式时完成的是非短路逻辑运算。
      

  3.   


    public static String test(String s) {
        if (s == null || s.length == 0) return "empty";
        return s;
    }

    public static String test(String s) {
        if (s == null | s.length == 0) return "empty";
        return s;
    }
    一样吗?
      

  4.   

     & 表达式两边都判断真假
    && 当左边为假的时候就不再判断右边
     同理
      

  5.   

    &  |  它们在两边是布尔类型时称为布尔运算符
    实际上楼主还漏了一个 ^ 布尔异或,这个在逻辑运算符中是不存在的。布尔运算符与等号可以组成布尔赋值运算符:boolean b = true;
    boolean c = false;
    b &= c;
    b |= c;
    b ^= c;可以这么说,布尔运算符执行的是运算过程,而逻辑运算符执行的是逻辑判断过程。
    也正因为如此,布尔运算符得计算两边所有的表达式,而逻辑运算符只是作为逻辑
    判断,在 && 判断时,左边为 false 时,就已经得出了判断结果,就不需要再去
    计算右边的表达式了。另外,在运算符的优先级别上,布尔运算符的优先级别高于逻辑运算符。
      

  6.   

    关于逻辑与“&”和条件与“&&”
    “&”也可做条件用,它不管在什么条件下两边的判断都要进行,“&&”如过第一个条件判断为假第二个判断就不进行了,“&”也不能说没用,如果你要在条件中进行某些代码操作的还是有用的(为简化代码用),一般情况下我没都是用“&&”
      

  7.   

    &和 ¦是位运算符 ,是短路运算符
    &&和 ¦ ¦是逻辑运算符!
      

  8.   

    谢谢各位的回答,看起来在逻辑判断中,“|” 和 “&”一般碰不到,等碰到了再说吧