Java中&和\u0026\u0026有什么区别?

我一直以为&& Java中的运算符用于验证其布尔操作数是否为真,以及& operator用于对两个整数类型执行按位操作.

最近我才知道&运算符也可用于验证其布尔操作数是否都为真,唯一的区别是它检查RHS操作数,即使LHS操作数为假.

是& Java中的运算符内部重载?或者这背后有其他一些概念吗?

解决方法:

&安培; < - 验证两个操作数
&安培;&安培; < - 停止评估第一个操作数是否计算为false,因为结果将为false (x!= 0)& (1 / x> 1)< - 这意味着评估(x!= 0)然后评估(1 / x> 1)然后做&amp ;.问题是,对于x = 0,这将引发异常. (x!= 0)&& (1 / x> 1)< - 这意味着评估(x!= 0)并且只有当这是真的然后评估(1 / x> 1)所以如果你有x = 0那么这是非常安全的如果(x!= 0)的计算结果为false,则不会抛出任何异常,直接求值为false而不评估(1 / x> 1). 编辑: exprA | exprB< - 这意味着评估exprA然后评估exprB然后执行|. exprA || exprB< - 这意味着评估exprA,并且只有当它为false时才评估exprB并执行||.

上一篇:python – 我们如何/为什么使用operator.abs


下一篇:在python中,为什么s * 3比s s快?