java运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
1、算术运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | b=4;-b | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-2 | 4 |
* | 乘 | 3*7 | 21 |
/ | 除 | 9/3 | 3 |
% | 取模(取余) | 5%2 | 1 |
++ | 自增(前):先运算后取值 自增(后):先取值后运算 | a=2;b=++a; a=2;b=a++; | a=3;b=3 a=3;b=2 |
– | 自减(前):先运算后取值 自减(后):先取值后运算 | a=2;b=–a; a=2;b=a–; | a=1;b=1 a=1;b=2 |
+ | 字符串连接 | “wor”+“ld” | “world” |
算术运算符的注意问题:
- 如果对负数取模,可以把模数负号忽略不记,如: 5%-2=1;5%2=1;-5%-2=-1;-5%2=-1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如: int x=3510;x=x/1000*1000; x的结果是 : 3000 - “+”除字符串相加功能外,还能把非字符串转换成字符串.例如:System.out.println(“5+5=”+5+5); //打印结果是: 5+5=55
2、赋值运算符
- 符号: =
- 当“=”两侧数据类型不一致时, 可以使用自动类型转换或使用强制类型转换原则进行处理。
支持连续赋值。
- 扩展赋值运算符: +=, -=, *=, /=, %=
3、比较运算符(关系运算符)
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 相等于 | 9==8 | false |
!= | 不等于 | 3!=3 | false |
< | 小于 | 2<1 | false |
> | 大于 | 1>2 | false |
<= | 小于等于 | 2<=2 | true |
>= | 大于等于 | 3>=2 | true |
instanceof | 检查是否是类的对象 | “Hello” instanceof String | true |
- 比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=” 。
4、逻辑运算符
&逻辑与 |逻辑或 !逻辑非 && 短路与 || 短路或 ^ 逻辑异或
a | b | a&b | a&&b | a|b | a||b | !a | a^b |
---|---|---|---|---|---|---|---|
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true | false |
-
逻辑运算符用于连接布尔型表达式,在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;
- >>:被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1;
- >>>:被移位二进制最高位无论是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 ;
- ~ :正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反 。
6、三元运算符
格式:
(条件表达式)?表达式1:表达式2;
条件表达式为true, 运算后的结果是表达式1;
条件表达式为false, 运算后的结果是表达式2;
注意:
表达式1和表达式2为同种类型
。