Java日积月累-1:Java中boolean类型的位运算
1. 首先回顾一下java中的8中基本类型及其存储所占用的bit数。
类型
bit数
byte
8
short
16
int
32
float
32
long
64
double
64
char
16
boolean
1
2. 再回顾一下java的运算符和优先级
运算符
优先级
后缀运算符
expr
++ expr
--
一元运算符
++expr
--expr
+expr
-expr
~ !
乘运算符
* / %
加运算符
+ -
位移预算符
<< >> >>>
关系运算符
< > <= >= instanceof
相等运算符
== !=
位与
&
位异或
^
位或
|
逻辑与
&&
逻辑或
||
三元运算符
? :
赋值运算符
= += -= *= /= %= &= ^= |= <<= >>= >>>=
3. 我们知道逻辑与和逻辑或在运算时执行短路运算,但是当执行boolean类型的位运算时,其结果也是boolean型,运算结果与执行逻辑运算的结果的相同,但是位运算并不执行短路运算。通过下面的例子我们可以看到:
/**
* desc:
* test bitewise
* ----------------------------------------------------------------------------
* ver. date who what
* ----------------------------------------------------------------------------
* 0.0.1 2010-1-3 leeinneu add:test bitewise
* ----------------------------------------------------------------------------
*/
package cn.leeinneu.daily._2010_01_03;
import static cn.leeinneu.utils.Print.*;
/**
* @author leeinneu
*
* BiteWiseTest
*/
public class BiteWiseTest {
/**
* @param args
*/
public static void main(String[] args) {
// Boolean Statement
prtln("Boolean Statement");
prt("1. boolAnd:");
prtln(isTrue() && isFalse());
prt("2. boolOr:");
prtln(isTrue