1. 算术运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | b=4;-b | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 5-4 | 1 |
* | 乘 | 3*4 | 12 |
/ | 除 | 5/2 | 2 |
% | 取模 | 5%5 | 0 |
++ | 自增(前) | a=2;b=++a | a=3,b=3 |
++ | 自增(后) | a=2;b=a++ | a=3;b=2 |
– | 自减(前) | a=2;b=–a | a=1;b=1 |
– | 自减(后) | a=2;b=a– | b=2;a=1 |
+ | 字符串相加 | “hello”+”world” | helloworld |
算术运算符的注意问题
- 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。(取模运算符号看被模数,即左边)
- 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
- 例如:int x=3510;x=x/1000*1000; x的结果是?3000
- “+”除字符串相加功能外,还能把非字符串转换成字符串,
- 例如:System.out.println(“5+5=”+5+5);//打印结果是?5+5 = 55
2. 赋值运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
= | 赋值 | a=3;b=2 | a=3;b=2 |
+= | 加等于 | a=3;b=2;a+=b | a=5;b=2 |
-= | 减等于 | a=3;b=2;a-=b | a=1;b=2 |
*= | 乘等于 | a=3;b=2;a*=b | a=6;b=2 |
/= | 除等于 | a=3;b=2;a/=b | a=1;b=2 |
%= | 模等于 | a=3;b=2;a%=b | a=1;b=2 |
1 | int a,b,c; a=b=c=3; |
3. 比较运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 相等 | a=3;b=2;a==b | false |
!= | 不等于 | a=3;b=2;a!=b | true |
< | 小于 | a=3;b=2;a<b | fasle |
> | 大于 | a=3;b=2;a>b | true |
<= | 小于等于 | a=3;b=2;a<=b | fasle |
>= | 大于等于 | a=3;b=2;a>=b | true |
instanceof | 检查是否是类的对象 | “Hello” instanceof String | true |
注意:
- 比较运算符运行结束之后返回的都是boolean
- 注意运算符= =不要写成=
4. 逻辑运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
& | and(与) | false&true | false |
| | or(或) | true|false | true |
^ | xor异或 | true^false;true^true | true;false |
! | not(非) | !false | true |
&& | 短路与 | false&&true | fasle |
|| | 短路或 | true||false | true |
注意:
- 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
- “&”和“&&”的区别:
- 单&时,左边无论真假,右边都进行运算;
- 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
- “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
- 异或( ^ )与或( | )的不同之处是:当左右都为true时, 结果为false。
5. 位运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
<< | 左移位 | 3<<2 | 12 (3*2*2=12) |
>> | 右移位 | 3>>1 | 1(3/2=1) |
>>> | 无符号右移位 | 3>>>1 | 1(3/2=1) |
& | 与运算 | 6&3 | 2 |
| | 或运算 | 6|3 | 7 |
^ | 异或运算 | 6^3 | 5 |
~ | 反码 | ~6 | -7 |
位运算符的细节
- << : 空位补0,被移除的高位丢弃,空缺位补0。左移几位就相当于乘以2的几次方。
- >> : 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。 相当于除以2的几次方。
- >>> : 被移位二进制最高位无论是0或者是1,空缺位都用0补。 正数移动没区别,负数移动后变为正数。
- & : 二进制位进行&运算,只有1&1时结果是1,否则是0;
- | : 二进制位进行| 运算,只有0 | 0时结果是0,否则是1;
- ^ : 任何相同二进制位进行^ 运算,结果是0;1^1=0 , 0^0=0不相同二进制位^ 运算结果是1。1^0=1 , 0^1=1
1 | a. 有两个int型变量a和b,在不使用第三个变量的情况下交换两个变量中的值 |