在Java中&和&之间有什么区别?

在Java中&和&之间有什么区别?

我一直以为&&操作符在Java中用于验证其布尔操作数是否都是true,以及&运算符用于对两种整数类型进行逐位操作.

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

&操作符在Java内部重载?或者这背后还有其他的概念?


海绵宝宝撒
浏览 456回答 3
3回答

千巷猫影

&<-验证两个操作数&如果第一个操作数计算为false,则停止计算,因为结果将为false。(x != 0) & (1/x > 1)&nbsp;<-- this means evaluate&nbsp;(x != 0)然后评估(1/x > 1)那就去做。问题是,对于x=0,这将引发异常。(x != 0) && (1/x > 1)&nbsp;<-- this means evaluate&nbsp;(x != 0)只有当这是真的,然后评估(1/x > 1)因此,如果有x=0,那么这是完全安全的,如果(x!=0)计算结果为false,则不会抛出任何异常。(1/x > 1).编辑:exprA | exprB&nbsp;<-- this means evaluate&nbsp;exprA然后评估exprB然后做|.exprA || exprB&nbsp;<-- this means evaluate&nbsp;exprA如果这是false然后评估exprB然后做||.

皈依舞

除了通过计算两个操作数而不是懒惰的计算器之外,我认为按位运算符的主要特性是比较每个操作数的字节,如下面的示例所示:int a = 4;int b = 7;System.out.println(a & b); // prints 4//meaning in an 32 bit system// 00000000 00000000 00000000 00000100// 00000000 00000000 00000000 00000111// ===================================// 00000000 00000000 00000000 00000100

一只萌萌小番薯

boolean&nbsp;a,&nbsp;b;Operation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Meaning&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Note---------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---- &nbsp;&nbsp;&nbsp;a&nbsp;&&&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logical&nbsp;AND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short-circuiting &nbsp;&nbsp;&nbsp;a&nbsp;||&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logical&nbsp;OR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short-circuiting &nbsp;&nbsp;&nbsp;a&nbsp;&&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;logical&nbsp;AND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;short-circuiting &nbsp;&nbsp;&nbsp;a&nbsp;|&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;logical&nbsp;OR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;short-circuiting &nbsp;&nbsp;&nbsp;a&nbsp;^&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;logical&nbsp;exclusive&nbsp;OR&nbsp;&nbsp;!a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logical&nbsp;NOTshort-circuiting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(x&nbsp;!=&nbsp;0)&nbsp;&&&nbsp;(1/x&nbsp;>&nbsp;1)&nbsp;&nbsp;&nbsp;SAFE not&nbsp;short-circuiting&nbsp;&nbsp;&nbsp;&nbsp;(x&nbsp;!=&nbsp;0)&nbsp;&&nbsp;&nbsp;(1/x&nbsp;>&nbsp;1)&nbsp;&nbsp;&nbsp;NOT&nbsp;SAFE
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java