运算符号:
1)、算术运算符。
运算符
运算
范例
结果
+
正号
+3
3
-
负号
b=4; -b
-4
+
加号
5+5
10
-
减号
5-4
1
*
乘号
3*4
12
/
除号
5/5
1
++
自增(前)
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--;
a=1;b=2;
+
字符串相加
“he”+“llo”
“hello”
%
取模
5%5
0
%:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
字符串数据和任何数据使用“+”都是相连接,最终部分都变成字符串
2)、赋值运算符。
= 、 +=、 -=、 *=、 /=、 %=。
x+=4 把左右两边的和赋值给左边,相当于x=x+4。
x=3 把右边赋值给左边
3)、比较运算符。
运算符
运算
范例
结果
==
相等于
4==3
false
!=
不等于
4!=3
true
<
小于
4<3
false
>
大于
4>3
true
<=
小于等于
4<=3
false
>=
大于等于
4>=3
true
instanceof
检查是否是类的对象
“hello” instanceof String
true
(1)比较运算符的结果都是boolean型,也就是结果要么是true要么是false
(2)比较运算符“==”不能误写成“=”
4)、逻辑运算符。
运算符
运算
范例
结果
&
and(与)
false&true
false
|
or(或)
false|true
true
^
Xor(异或)
true^false
ture
!
not(非)
!true
false
&&
and(短路与)
false&&true
false
||
or(短路或)
false||true
false
逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true
^:异或:和或有点不一样。 两边结果一样,就为false。两边结果不一样,就为true.
& 和 &&区别:
& :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别:
|:两边都运算。
||:短路或,如果左边为true,那么右边不参与运算。
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
<>相当于除以2的倍数(带负号右移)
移n位就是乘以或除以2的你次幂,>>最高位补什么由原有数据的最高位而定,如果最高位是0右移后用0补空位,如果最高位是1,右移后用1补空位。
>>>无论最高为是什么,右移后都用0补。
练习:对两个变量的数据进行互换。不需要第三方变量。
int a = 3,b = 5;-->b = 3,a = 5;
a = a + b; a = 8;
b = a - b; b = 3;
a = a - b; a = 5;
a = a ^ b;//
b = a ^ b;//b = a ^ b ^ b = a
a = a ^ b;//a = a ^ b ^ a = b;
练习:高效的算出 2*8 = 2<<3;
6)、三元运算符
(条件表达式)?表达式1:表达式2
如果条件为true,运算后的结果是表达式1,如果条件为false,运算后的结果是表达式2
int x 3,y=4;
z=(x>y)>x:y;
结果为:z=4