和&之间的区别是什么?和&&amp ;?

时间:2011-10-13 12:25:40

标签: java

  

可能重复:
  & vs && and | vs ||

&&&之间的区别是什么?

我为&&&获得相同的输出。

实施例

  1. &&

    if (true && true){
        System.out.println("------if------");
    } else {
        System.out.println("------else------");
    }
    
  2. &

    if (true & true){
        System.out.println("------if------");
    } else {
        System.out.println("------else------");
    }
    
  3. 输出:

    1. ------if------
    2. ------if------
    3. 我们可以在代码中交替使用&&&运算符吗?

8 个答案:

答案 0 :(得分:3)

&&使评估短路,而&总是评估两个操作数。

这是一个重复的问题。我会试着为你挖掘链接......

答案 1 :(得分:2)

  • & - 按位AND
  • && - 逻辑AND

在这两种情况下都是正确的,因为在逻辑的情况下,原因很明显,而在按位 AND的情况下, - true被解释为1,所以{{1 alsays返回1 & 1,结果为逻辑1

答案 2 :(得分:2)

&将强制评估左右操作数,而&&是短路操作符,并且在明显的情况下不检查右操作数。

// this will evaluate both method calls even if the result
// of checkSomething() is false
boolean result = checkSomething() & checkSomethingExpensive()

// this will skip evaluation of checkSomethingExpensive() if the result of
// checkSomething() is false
boolean result = checkSomething() && checkSomethingExpensive()

答案 3 :(得分:0)

逻辑AND&&

Java operators

按位&运算符执行按位AND运算。

Java operators2

答案 4 :(得分:0)

经验法则:使用&&在处理布尔,条件,ifs等时。大多数时候。使用&在极少数情况下,您需要执行位操作。

答案 5 :(得分:0)

  • &amp ;: operation,boolean true& true == true,整数1001b& 1110b == 1000b
  • &&amp ;: comparison,boolean true& true == true,整数编译器错误

答案 6 :(得分:0)

那是因为评估了以下内容:

我会用英语语义写出来让你理解。

对于输出1:逻辑AND &&

  

如果为true且true为TRUE。

对于ouptut 2:按位AND &

  • 设x = true(换句话说,位1
  • x = x AND true(换句话说,x = 1 & 1)位是AND'ed
  • if(x IS TRUE)然后打印if语句。

答案 7 :(得分:-1)

&安培;&安培;是一个比较而&是一个操作!