运算符
February 27, 2023About 2 min
运算符
- 赋值运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 三目运算符
- instanceof运算符
单目运算符
++/--
!
双目运算符
赋值运算符
=
可以结合算数运算符结合成复合赋值运算符,+=,/=
算数运算符
符号 " + “、” - “、” * “、” / “、” % “、” ++ “、” – "
- 除法运算,两个操作数是整型的,结果也会是整型的,舍弃掉小数部分;如果有一个数是浮点数,结果将自动转型为浮点型
- 取余运算,两个操作数是整型的,结果也会是整型的,如果有一个数是浮点数,结果将自动转型为浮点型
- 自增自减运算,a++ 相当于 a = a + 1, a++ 是先运用在计算,++a 先计算在运用
关系运算符
- " > “、” < “、” >= “、” <= “只支持数值类型的比较,” == “、” != "支持所有数据类型的比较
- 关系表达式的运算结果是布尔值
逻辑
位运算符
,
在 java 中,逗号只能用来:
分隔方法的参数,
int sum(int a, int b)分割多个变量的声明,
int a, b;用于 for 循环的表达式中:
for (int i = 0, j = 0; ; i++, j++)
instanceof
三目运算符
###predicate? a: b
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | ( ), [ ], . | 从左到右 |
| 2 | !, ~, ++, -- | 从右到左 |
| 3 | *, /, % | 从左到右 |
| 4 | +, - | 从左到右 |
| 5 | <<, >>, >>> | 从左到右 |
| 6 | <, <=, >, >=, instanceof | 从左到右 |
| 7 | ==, != | 从左到右 |
| 8 | & | 从左到右 |
| 9 | ^ | 从左到右 |
| 10 | ` | ` |
| 11 | && | 从左到右 |
| 12 | ` | |
| 13 | ? : | 从左到右 |
| 14 | =, +=, -=, *=, /=, %=, &=, |=, ^=, ~=, <<=, >>=, >>>= | 从右到左 |
| 15 | , | 从右到左 |
当多个运算符出现在一个表达式中,谁的优先级别高,就先执行谁。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果完全不一样。
有一个口诀可以帮助记忆:
单算移关与,异或逻条赋
括号级别最高,逗号级别最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。