算术运算符
赋值运算符
=, +=, -=, *=, /=, %=
运算符 |
运算 |
范例 |
结果 |
= |
赋值 |
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;