java 运算符
算术运算符
| + |
加法 |
| - |
减法 |
| * |
乘法 |
| / |
除法 |
| % |
取余数 |
| ++ |
自增 |
| -- |
自减 |
| += |
a += b 等价于 a = a + b |
| -= |
a -= b 等价于 a = a - b |
| *= |
a = b 等价于 a = a b |
| /= |
a /= b 等价于 a = a / b |
| %= |
a %= b 等价于 a = a % b |
布尔运算符
| & |
逻辑与 |
| | |
逻辑或 |
| ^ |
逻辑异或(异或) |
| || |
短路或(常用) |
| && |
短路与(常用) |
| ! |
非(常用) |
| &= |
和分配 |
| |= |
或分配 |
| ^= |
异或分配 |
| == |
等于 |
| != |
不等于 |
| ? : |
三元 if-then-else |
关系运算符
| == |
等于 |
| != |
不等于 |
| > |
大于 |
| < |
小于 |
| >= |
大于或等于 |
| <= |
小于或等于 |
三元运算符
( 使用得当的话,可以很少的简化代码! )
条件表达式 ? 表达式1 : 表达式2
如果条件为真,返回表达式1,否则返回表达式2
例如:
System.out.println(i < 0 ? "i是负数" : "i不是负数");
//表示:先判断 i < 0,如果为真则打印"i是负数",如果不为真则打印"i不是负数"。
按位运算符
| ~ |
按位一元NOT(运算符取反,翻转操作数的每一位,即0变成1,1变成0) |
| & |
按位AND(如果相对应位都是1,则结果为1,否则为0) |
| | |
按位或(如果相对应位都是0,则结果为0,否则为1) |
| ^ |
按位异或(如果相对应位值相同,则结果为0,否则为1) |
| >> |
向右移动(左操作数按位右移右操作数指定的位数。) |
| >>> |
右移零填充(左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。) |
| << |
向左移动(左操作数按位左移右操作数指定的位数。) |
运算符优先级
| 1 |
() [] . |
从左到右 |
| 2 |
! +(正) -(负) ~ ++ -- |
从右向左 |
| 3 |
* / % |
从左向右 |
| 4 |
+(加) -(减) |
从左向右 |
| 5 |
<< >> >>> |
从左向右 |
| 6 |
< <= > >= instanceof |
从左向右 |
| 7 |
== != |
从左向右 |
| 8 |
& |
从左向右 |
| 9 |
^ |
从左向右 |
| 10 |
| |
从左向右 |
| 11 |
&& |
从左向右 |
| 12 |
|| |
从左向右 |
| 13 |
?: |
从右向左 |
| 14 |
= += -= *= /= %= &= |= ^= ~= <<= >>= >>>= |
从右向左 |
java的各种运算符的优先级
原文:https://www.cnblogs.com/zhiwenxi/p/11422978.html