java的各种运算符的优先级

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 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左
原文地址:https://www.cnblogs.com/zhiwenxi/p/11422978.html