一.运算符
算术运算:
运算符 | 含义 | 范例 | 结果 |
+ | 加法运算符 | 5+3 | 8 |
- | 减法运算法 | 5-3 | 2 |
* | 乘法运算符 | 5*3 | 15 |
/ | 除法运算符 | 5/3 | 1 |
% | 取模|取余运算符 | 5%3 | 2 |
++ | 自增运算符 | i=2;j=i++; | i=3;j=2 |
-- | 自减运算符 | I=2;j=++i | I=3;j=3 |
赋值运算:
赋值运算符:=
复合赋值运算符:+=,-=,*=,/=,%=
i=i+j可以代替为i+=j,推荐使用后者,具有更好的性能
关系运算符:
运算符 | 含义 | 范例 | 结果 |
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
逻辑运算符:
运算符 | 含义 | 运算规则 |
& | 逻辑与 | 两个操作数都是true,结果才是true |
| | 逻辑或 | 两个操作数一个是true,结果为true |
^ | 逻辑异或 |
两个操作数相同,结果为false 两个操作数不同,结果为true |
! | 逻辑反 |
操作数为true,结果为false 操作数为false,结果为true |
&& | 短路与 | 运算规则同&,但短路 |
|| | 短路或 | 运算规则同|,但短路 |
位运算符:
注意事项:
位运算符对操作数以二进制单位进行运算
位运算的操作数是整形数,包括int,short,long,byte和char
位运算的结果也是整形数,包括int,long
如果操作数是char,byte,short,位运算前其值会自动晋升为int,运算结果为int
运算符 | 含义 | 运算规则 |
& | 按位与 | 两个操作数都是1,结果才是1 |
| | 按位或 | 两个操作数一个是1,结果为1 |
^ | 按位异或 |
两个操作数相同,结果为0 两个操作数不同,结果为1 |
~ | 按位非/取反 |
操作数为1,结果为0 操作数为0,结果为1 |
<< | 左移 | 右边空位补0 |
>> | 右移 | 左边空位补最高位即符号位 |
>>> | 无符号右移 | 左边空位补0 |
优先级 | 运算符 | 结合型 |
1 | ( ) [ ] | 从左到右 |
2 | !~ ++ -- | 从右向左 |
3 | * / % | 从左向右 |
4 | + - | 从左向右 |
5 | << >> >>> | 从左向右 |
6 | < <= > >= | 从左向右 |
7 | == != | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右向左 |
优先级别最低的是赋值运算符,其次是条件运算符
单目运算符包括! ~ ++ -- ,优先级别高
可以通过()控制表达式的运算顺序
总体而言,算术运算符>关系运算符>逻辑运算符