Java运算符总结
算术运算符
+
-
*
/
%
- ++
比较运算符
>
<
>=
<=
==
!=
赋值运算符
-
+=
-
-=
-
/=
-
*=
-
%=
逻辑运算符
|
——逻辑或,同false为false 否则为true||
——短路或,同false为false,否则true,若一边为true,则直接返回true&
——逻辑和,同true为true,否则为false&&
——短路和,同true为true,否则为false,若一边为false,则直接返回false!
——非,取反^
——异或,相同为false,否则为true
移位运算符
-
>>
——右位移,移位n后,值 = 值 / 2n ,丢弃低位,最高位补上符号 -
>>>
——无符号右位移,丢弃低位,但是符号位不会补上,所以负数在该操作下先变大后变小(先变正数后来逐渐变成0) -
<<
——左位移,移位n后,值 = 值 * 2n,丢弃最高位,右边补0
位运算符
-
~ ——按位取反,1变0,0变1
-
|——同0为0,否则为一
-
&——同1为1,否则为0
-
^——相同为0,其余为1
运算符优先级总结
*优先级* | *运算符* | *类* | *结合性* |
---|---|---|---|
1 | () | 括号运算符 | 由左至右 |
2 | !、+(正号)、-(负号) | 一元运算符 | 由左至右 |
2 | ~ | 位逻辑运算符 | 由右至左 |
2 | ++、– | 递增与递减运算符 | 由右至左 |
3 | *、/、% | 算术运算符 | 由左至右 |
4 | +、- | 算术运算符 | 由左至右 |
5 | <<、>> | 位左移、右移运算符 | 由左至右 |
6 | >、>=、<、<= | 关系运算符 | 由左至右 |
7 | ==、!= | 关系运算符 | 由左至右 |
8 | & | 位运算符、逻辑运算符 | 由左至右 |
9 | ^ | 位运算符、逻辑运算符 | 由左至右 |
10 | | | 位运算符、逻辑运算符 | 由左至右 |
11 | && | 逻辑运算符 | 由左至右 |
12 | || | 逻辑运算符 | 由左至右 |
13 | ? : | 条件运算符 | 由右至左 |
14 | =、+=、-=、*=、/=、%= | 赋值运算符 | 由右至左 |
其实主要记住 ! > & > | > && > ||