按位运算符应该传输变量并逐位对其进行运算。对于整数、长整型、字符,这是有意义的。这些变量可以包含由其大小强制执行的全部值范围。
然而,对于布尔值,布尔值只能包含两个值。 1 = 真或 0 = 假。但布尔值的大小没有定义。它可以大到一个字节,也可以小到一点。
那么对布尔值使用按位运算符会产生什么效果呢? JVM 是否本质上将其转换为正常的逻辑运算符并继续前进?出于操作目的,它是否将布尔值视为单个位实体?或者结果和布尔值的大小是否未定义?
经营者&
, ^
, and |
当操作数是原始整型时,是按位运算符。当操作数为布尔值时,它们是逻辑运算符,并且指定了它们在后一种情况下的行为。参见第 15.22.2 节Java语言规范了解详情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)