Java中的运算符(2)
1、位运算符:
(1)&:做逻辑值&运算时不短路
(2)|:做逻辑值|运算时不短路
(3)~:按位取反运算,操作数0变1,1变0
(4)^:两个操作数对应位相同结果0,不同1
(5)>>:有符号右移:低位移除,高位补1或0,当符号位是1时,高位补1,符号位是0,高位补0
(6)>>>:无符号右移:低位移除,高位补0,
(7)<<:左移位:高位舍去,低位补0
2、赋值运算符:= += -= /= %= *= &= |= <<= >>= …
3、三目运算符: e1?e2:e3
4、instanceof
运算符的优先级和结合性
运算符 结合性
[ ] . ( ) (方法调用) 从左向右
! ~ ++ – +(一元运算) -(一元运算) 从右向左
/ % 从左向右
± 从左向右
<< >> >>> 从左向右
< <= > >= instanceof 从左向右
== != 从左向右
& 从左向右
^ 从左向右
| 从左向右
&& 从左向右
|| 从左向右
?: 从右向左
= 从右向左
三、拆箱和封箱:
jdk1.5新规范,对于基本数据类型的数据与其对应的包装类的实例之间的简化的转换方案,
封箱指的是将基本类型的值自动转换成包装类的对象
1、回顾基本类型与包装类
long---------Long
int----------Integer
short--------Short
byte---------Byte
double-------Double
float--------Float
boolean------Boolean
char---------Character
2、基本数据类型包装类(Integer、Long、Short、Byte)的缓存机制如果在-127~128之间不会产生新对象,超出范围
产生新对象。