'&'之间有什么区别和'&&'在java中

时间:2012-08-20 09:12:37

标签: java

  

可能重复:
  & vs && and | vs ||
  What are the cases in which it is better to use unconditional AND (& instead of &&)

在检查简单的AND条件时,我可以使用'&'和'&&'。它与'&'一起工作正常以及'&&'。这两者之间有什么区别吗?

示例代码:

if(sample!=null & sample.size())
if(sample!=null && sample.size()

6 个答案:

答案 0 :(得分:2)

第一个版本(&)总是评估两个参数。 仅当第一个参数被评估为TRUE时,第二个版本(&&)才会计算第二个参数。

同样适用于OR运算符:有|和||。 仅当第一个参数被评估为FALSE时,(||)才会计算第二个参数。

答案 1 :(得分:1)

第一个表达式检查双方,第二个表达式仅在第一个为真时才检查第二方。

答案 2 :(得分:1)

它只用一个单数&来评估左侧和右侧,即使最后一侧是假的。

请参阅下面的问题,了解更详细的信息......

When should I not use the Java Shortcut Operator &

答案 3 :(得分:1)

'&' for bit wise 'AND'
'&&' is for Logical 'AND'

答案 4 :(得分:1)

if(sample!=null & sample.size())

如果第一个条件不满足,那么它也将检查下一个条件。

if(sample!=null && sample.size())

如果第一个条件不满足,那么not将检查下一个条件。

答案 5 :(得分:1)

&&是一个短路运算符,意味着如果示例中的sample为null,它将停止并且不会计算第二个条件。

另一方面,&不是短路,即使样本为空,也会评估sample.size()。当然在这种情况下它会抛出NullPointerException,但在短路情况下它不会抛出。{/ p>