运算符与表达式
- 算术运算符 : + 、- 、* 、/ 、% 、++ 、-- ;
- 关系运算符 :> 、< 、>= 、<= 、= 、!= ;
- 位运算符 : ~ 、& 、| 、^ 、>> 、<< 、>>>(无符号右移) ;
- 逻辑运算符 :&&、 ||、!;只能操作boolean类型数据
- 赋值运算符 :=
- 其他运算符: 三目运算符: boolean表达式 ? 表达式2 :表达式3;
取模运算符(%)
C语言的%,不可以操作小数,而Java确可以;
逻辑运算短路问题
- 逻辑与运算&&:如果判别式已经可以确定为假false,则判别式后边的不在执行;
- 逻辑或运算||:如果判别式已经可以确定为真true,则判别式后边的不在执行;
- 当操作数是boolean类型时,算数运算符|和&也可以进行逻辑运算,之时不会进行短路操作;
运算符优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | . , [] , {} | 从左向右 |
2 | ++ ,-- , ! , ~ | 从右向左 |
3 | new | 从左向右 |
4 | * , / , % | 从左向右 |
5 | + , - | 从左向右 |
6 | >> , >>> , << | 从左向右 |
7 | > , < ,<= ,>= ,instanceof | 从左向右 |
8 | == , != | 从左向右 |
9 | & | 从左向右 |
10 | ^ | 从左向右 |
11 | ¦ | 从左向右 |
12 | && | 从左向右 |
13 | ¦ ¦ | 从左向右 |
14 | ?: | 从右向左 |
15 | =, += , -= , *=, /= ,&= , ¦ = , ^= , ~= , <<= , >>= , >>>= | 从右向左 |
16 | &= , ¦=,<<=,>>=,>>>= | 从右向左 |