运算符
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 | , | 从右到左 |
当多个运算符出现在一个表达式中,谁的优先级别高,就先执行谁。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果完全不一样。
有一个口诀可以帮助记忆:
单算移关与,异或逻条赋
括号级别最高,逗号级别最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。