如题

解决方案 »

  1.   

    &表示逻辑与或者位运算与。
    &&表示逻辑与,短路计算。
      

  2.   

    & 位与&& 逻辑与
      

  3.   

    & 是位运算符 
    &&是逻辑运算符
      

  4.   

    & 既可以作逻辑运算符(非短路)又可以作位运算符完成按位与操作,具体是什么运算要看两边的操作数类型,如果两边都是 boolean 类型的操作数完成的是非短路逻辑与运算,否则如果两边是 int 或 long 类型的操作数,完成的是按位与运算。
    && 是短路逻辑与运算符。
      

  5.   

    当都作为是逻辑运算符时
    &是非短路 与&&是短路 与 当一个一个boolean表达式能够判断真假是就不会在执行会面的如:(1>2)&&(10/0)
    本来后面的10/0是错误的 但是前面的1》2已经是false能够判断出来是假了 后面的就不会再执行了
    所以不会报错如果用&即使前面的已经可以判断出来结果 他也要继续判断后面的boolean值 所以如果用&会报错在一般情况下&用得很少 只要知道&& 用法就可以了
      

  6.   

    不一样
    &是位运算符
    &&是逻辑运算符
      

  7.   

    & 位与 && 逻辑与
      

  8.   

    如:(1>2)&&(10/0) 
    本来后面的10/0是错误的 但是前面的1》2已经是false能够判断出来是假了 后面的就不会再执行了 
    所以不会报错 如果用&即使前面的已经可以判断出来结果 他也要继续判断后面的boolean值 所以如果用&会报错 在一般情况下&用得很少 只要知道&& 用法就可以了
      

  9.   

    & 位与 && 逻辑与 
      

  10.   

    &  表示逻辑与或者位运算与 
    && 表示逻辑与,短路计算
      

  11.   

    && 与 &区别:
    &&当左边为false时,不会执行右边的判断
    &当左边为false时,还会执行右边的判断(当不管什么条件时,都希望右边的值还是要改变的情况下)
      

  12.   

    & 位与 仅仅用在二进制中,不能用在十进制等用在二进制是1&1 = 1,1&0=0,0&1=0,0&0=0,也就是说二进制中2个都为1才能为1
    比如:1001 0011 & 0010 1101 = 0000 0001,
    && 逻辑 与  true && true  = true;true && false  = false;false && true  = false;false && false  = false.
      

  13.   

    & 既可以作逻辑运算符(非短路)又可以作位运算符完成按位与操作,具体是什么运算要看两边的操作数类型,如果两边都是 boolean 类型的操作数完成的是非短路逻辑与运算,否则如果两边是 int 或 long 类型的操作数,完成的是按位与运算。 
    && 是短路逻辑与运算符。
      

  14.   

    只要记住 : 在逻辑判断的时候 (两边都是 Boolean 类型), & :当左边的不成立时 , 还会执行 右边的判断; 而 && : 当左边不成立的时候,就直接返回一个 FALSE ,就不再 执行右边的判断。 一般这样用的时候占绝大多数。
      

  15.   


    & 既可以作逻辑运算符(非短路)又可以作位运算符完成按位与操作,具体是什么运算要看两边的操作数类型,如果两边都是 boolean 类型的操作数完成的是非短路逻辑与运算,否则如果两边是 int 或 long 类型的操作数,完成的是按位与运算。 
    && 是短路逻辑与运算符。
    [/Quote]
      

  16.   

    & 是位运算符 
    &&是逻辑运算符,也 称短路运算。当左边是false时,它就不会计算右边的等式,直接就是false~~
      

  17.   

    &是位运算符
    &&是逻辑运算符
      

  18.   

    &&  与     两边条件为true,结果为true
               其中一边为false,结果为false
      

  19.   

    短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”。  class Logic{public ststic void main(String[] args){int a=1;int b=1;if(a<b && b<a/0){System.out.println("Oh,That's Impossible!!!");}else{System.out.println("That's in my control.");}}}  “&&”运算符检查第一个表达式是否返回“false”,如果是“false”则结果必为“false”,不再检查其他内容。  “a/0”是个明显的错误!但短路运算“&&”先判断“a<b”,返回“false”,遂造成短路,也就不进行“a/0”操作了,程序会打出"That's in my control."。这个时候,交换一下“&&”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。  class Logic{public ststic void main(String[] args){int a=1;int b=1;if(a==b || b<a/0){System.out.println("That's in my control.");}else{System.out.println("Oh,That's Impossible!!!");}}}  “||”运算符检查第一个表达式是否返回“true”,如果是“true”则结果必为“true”,不再检查其他内容。  “a/0”是个明显的错误!但短路运算“||”先执行“a==b”判断,返回“true”,遂造成短路,也就不进行“a/0”操作了,程序会打出"That's in my control."。这个时候,交换一下“||”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。  非短路运算符包括 “& 与”、“| 或”、“^ 异或”,一般称为“逻辑操作”  class Logic{public ststic void main(String[] args){int a=1;int b=1;if(a<b & b<a/0){System.out.println("Oh,That's Impossible!!!");}else{System.out.println("That's in my control.");}}}  “&”运算符不会造成短路,它会认认真真的检查每一个表达式,虽然“a<b”已经返回“flase”了,它还是会继续检查其他内容,以至于最终抛出异常“java.lang.ArithmeticException: / by zero”。  class Logic{public ststic void main(String[] args){int a=1;int b=1;if(a==b | b<a/0){System.out.println("That's in my control.");}else{System.out.println("Oh,That's Impossible!!!");}}}  同理,“|”运算符也不会造成短路,虽然“a==b”已经返回“true”了,它还是会继续检查其他内容,以至于最终抛出异常“java.lang.ArithmeticException: / by zero”。  “^”运算符道理是一样的,就不在这里罗索了。  最后。短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式和逻辑表达式内。也可以说:短路运算只能操作布尔型的,而非短路运算不仅可以操作布尔型,而且可以操作数值型。