运算符优先级
优先级 运算符 类 | ||
1 | () | 括号运算符 |
2 | !,+(正号),-(负号) | 一元运算符 |
3 | ~ | 位逻辑运算符 |
4 | ++,-- | 递增与递减运算符 |
5 | *,/,% | 算术运算符 |
6 | +,- | 算术运算符 |
7 | <<,>> | 位左移,右移运算符 |
8 | >,>=,<,<= | 关系运算符 |
9 | ==,!= | 关系运算符 |
10 | & | 位运算发,逻辑运算符 |
11 | ^ | 位运算发,逻辑运算符 |
12 | | | 位运算发,逻辑运算符 |
13 | && | 逻辑运算符 |
14 | || | 逻辑运算符 |
15 | ?: | 条件运算符1 |
16 | =,+=,*=,/=,%= | 赋值运算符,扩展运算符 |
以上供参考:
建议就是知道三句话,()括号运算符比算术运算符高,算术比关系高就行了!
*一般都不要刻意背记这些优先级,表达式里面优先使用小括号来组织!
*逻辑与,逻辑或,逻辑非得有限级一定要熟,(逻辑非>逻辑与>逻辑或)
*如:a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c
//优先级问题的用法
boolean s1 = true,s2 = true,s3 = false;
System.out.println(s1||s2&&s3); //逻辑运算符:非>与>或
//建议使用小括号组织表达式
Boolean s4 = (3>1||4>3&&3<5);
System.out.println(s4);