Java中的&和&&有什么区别?

Lavneesh:

我一直认为&&Java 中的运算符用于验证其两个布尔操作数是否均为true,并且该&运算符用于对两种整数类型进行按位运算。

最近我知道,&也可以使用运算符来验证其两个布尔操作数是否均为true,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。

&Java中运算符是否在内部重载?还是这背后还有其他概念?

ITroubs:

&<-验证两个操作数
&& <-停止评估第一个操作数是否为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并执行||

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章