数据类型强转与逻辑运算,位运算符之间的运算
-
不能对布尔值进行转换
-
-
在高容量转换到低容量的时候强制转换
-
转换的时候可能存在内存溢出,或者是精度丢失的问题
-
JDK7的新特性,数字之间可以用下划线进行分割; 10_000_000;
逻辑运算符与位运算符
-
短路运算
int a=5;
boolean b = (a<4)&&(a++<4);
这种情况在b=false,a还是等于4,因为a<4等于false,就不继续执行a++代码,这种错误是在基础代码中经常出现的,需要注意
-
位运算
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 如果都为1,则取1,否则取0
A|B = 0011 1101 如果有一个为1在,则取1,否则取0
(上面两种运算可以理解为 1为true,0为false。&为且,|为或的意思)
A^B = 0011 0001 如果两值相等则取0,否则取1
~B = 1111 0010 取相反的值
-
左移,右移运算
2 * 8=16 2 * 2 * 2 * 2=16 2 * 2^3(2的3次方)
<< >> (这种运算效率特高)
2<<3= 2 * 2^3(2的3次方) =16
2>>3=2 / 2^3(2的3次方=2/16
浙公网安备 33010602011771号