算术运算符
赋值运算符
=, +=, -=, *=, /=, %=
运算符 | 运算 | 范例 | 结果 |
= | 赋值 | a=3,b=2 | a=3,b=2 |
+= | 加等于 | a=3,b=3;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 |
比较运算符
比较运算符比较的两边操作数,结果都是boolean的,只有true和false两种结果。
运算符 | 运算 | 例子 | 结果 |
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4< 3 | flase |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | true |
Instanceof | 检查是否是类的对象 | "hello"instanceofString | true |
注意的细节:
1.使用比较运算符的时候,要求两种数据类型必须一致。
byte、short、char会自动提升至int。
逻辑运算符
逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。我们的比较运算符只能进行一次判断,对于对此判断无能为力,那么逻辑运算符就可以经将较运算符连接起来。
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3& x<6 。
“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真右边不参与运算。
“ ^”异或与“|”或的不同之处是:当左右都为true时,结果为false。
位运算符
位(bit)运算符:
-
位运算符
运算符含义
&
与(AND)
|
或(OR)
^
异或
~
取反
规则:
可以把1当做true0当做false
只有参与运算的两位都为1,&运算的结果才为1,否则就为0。
只有参加运算的两位都是0,|运算的结果才是0,否则都是1。
只有参加运算的两位不同,^运算的结果才为1,否则就为0。
移位操作符
位运算符 | ||
运算符 | 运算 | 范例 |
<< | 左移 | 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 |
技巧:可以理解为二进制1就是true,0就是false。
三元运算符
格式
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;