运算符号:

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