Java中的&和&&有什么区别?
我一直认为&&
Java 中的运算符用于验证其两个布尔操作数是否均为true
,并且该&运算符用于对两种整数类型进行按位运算。
最近我知道,&
也可以使用运算符来验证其两个布尔操作数是否均为true
,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。
&
Java中的运算符是否在内部重载?还是在这背后有其他概念?
回答:
&
<-验证两个操作数
&&
<-停止评估第一个操作数是否为false,因为结果为false
(x != 0) & (1/x > 1)
<-这意味着先评估(x != 0)
然后再评估(1/x > 1)
&。问题是对于x = 0,这将引发异常。
(x != 0) && (1/x > 1)
<-这意味着求值,(x != 0)
并且只有当它为true时才求值,(1/x > 1)
因此,如果x = 0,则这是绝对安全的,并且如果(x!= 0)求值为false,则整个对象都将直接求为false没有评估(1/x > 1
)。
编辑:
exprA | exprB<
-这意味着评估exprA
再评估exprB
,然后做|。
exprA || exprB<
-这意味着进行评估,exprA
并且只有在false
随后进行评估exprB
并进行||。
以上是 Java中的&和&&有什么区别? 的全部内容, 来源链接: utcz.com/qa/415436.html