运算符
1 赋值运算符
运算符 | 名称 | 用法 | 描述 |
= | 赋值 | int a = 3 ; | 将 = 右边的值 赋值给 = 左边的变量 |
2 算术运算符
运算符 | 名称 | 用法 | 结果 |
+ | 加 | 5 + 2 | 7 |
- | 减 | 5-2 | 3 |
* | 乘 | 5*2 | 10 |
/ | 除 | 5/2 | 2 |
% | 取余 | 5%2 | 1 |
3 一元运算符
运算符 | 用法 | 描述 |
++ | (先加)++x 或x++(先用) | 自增1 |
-- | (先减)--x或x--(先用) | 自减1 |
4 关系(比较)运算符
运算符 | 名称 | 用法 | 结果(Boolean值) |
> | 大于 | 2>1 | true |
< | 小于 | 2<1 | false |
>= | 大于等于 | 2>=1 | true |
<= | 小于等于 | 2<=1 | flase |
== | 等于 | 2==1 | false |
!= | 不等于 | 2!=1 | true |
5 逻辑运算符(只能比较 boolean值,结果也为 boolean值)
运算符 | 名称 | 用法 | 描述 ( 结果(Boolean值) ) |
&& | (短路)与 | 条件1 && 条件2 | 只要两个条件有一个为假,结果为假 |
& | 与 | 条件1 & 条件2 | 只要两个条件有一个为假,结果为假 |
|| | (短路)或 | 条件1|| 条件2 | 只要两个条件有一个为真,结果为真 |
| | 或 | 条件1| 条件2 | 只要两个条件有一个为真,结果为真 |
! | 非 | !条件 | 条件为真时,结果为假,反之亦然 |
^ | 异或 | 条件1 ^ 条件2 | 两个条件结果相同时为假,不同为真 |
解释:短路
当 条件1 && 条件2 如果条件1为false,结果明显为false,所以条件2不会再判断。
当 条件1 & 条件2 如果条件1为false,结果明显为false,但条件2语句一样会被运算。
6 位运算符(2进制运算符)
运算符 | 名称 | 用法 | 描述 |
& | 按位与 | 00001001&00001110 -> 00001000 | 按位比较,只要有0,则取0 |
| | 按位或 | 00001001|00001110 -> 00001111 | 按位比较,只要有1,则取1 |
^ | 按位异或 | 00001001^00001110 -> 00000111 | 按位比较,相同取0,不同取1 |
~ | 按位非 | ~00000010 -> 11111101 | 对位取反 |
<< | 左移 | 01000011 << 2 -> 00000110 | 每一位向左移动2位,右边补0,超出位数范围则舍去 |
>> | 带符号右移 | 11111110 >> 2 -> 11111111 | 每一位向右移动2位,左边补符号位,超出位数范围则舍去 |
>>> | 无符号右移 | 11111110 >>> 2 -> 00111111 | 每一位向右移动2位,左边补0,超出位数范围则舍去 |
经典案例1:用最快的速度计算2的3次方; 提示:使用<<
经典案例2:int a =1;int b =2;不借助第三个变量,交换两个数的值; 提示: 使用^
7 三目(三元)运算符
运算符 | 名称 |
? | 吗 |
: | 否则 |
用法:
- zhangSanScore > 98 ? "奖励Iphone 8 " : "没有任何奖励" ;
语法解释:张三的成绩大于98吗?如果大于"奖励Iphone 8 ",否则"没有任何奖励";
8 字符串连接运算符
运算符 | 名称 | 用法 | 结果 |
+ | 字符串追加 | String s="张三"+"是个男孩"; | s -> 张三是个男孩 |
注:只要+的两端有一端是字符串,则这个时候+就变成了字符串连接符
9 运算符优先级
优先级 | 运算符 | 结合性 |
1 | () [] . | 从左到右 |
2 | ! +(正) -(负) ~ ++ -- | 从右向左 |
3 | * / % | 从左向右 |
4 | +(加) -(减) | 从左向右 |
5 | << >> >>> | 从左向右 |
6 | < <= > >= instanceof | 从左向右 |
7 | == != | 从左向右 |
8 | &(按位与) | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右向左 |
注:只需要知道 () 的优先级是最高的,其他的不需要记,当运算表达式比较复杂,不能确定运算顺序的时候,可以添加括号 () 控制执行顺序。