运算符是一种特殊符号,用以表示数据的运算、赋值和比较。运算符共分为算术运算符、赋值运算符、比较运算符、逻辑运算符、移位运算符。
一、算术运算符
算术运算符的功能是做各种算术运算,其操作数可以是字符型、整型或浮点型数据。Java中的算术运算符又可以分为两种:单目运算符和双目运算符。单目运算符的操作数只有一个,只对唯一的操作数进行处理。双目运算符操作数有两个,运算过程中由两个操作数参与完成。算术运算符见下表:
运算符
运算
范例
结果
类型
+
正号
+3
单目运算符
-
负号
b=4;-b;
-4
加
5 + 5
10
双目运算符
减
6 - 4
2
*
乘
2 * 2
4
/
除
5 / 5
1
%
取模
5 % 3
++
自增(前)
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
字符串相加
"Hel" + "lo"
"Hello"
注意:自增与自减位置的区别。
二、赋值运算符
赋值运算符的作用就是将一个值赋值给另一个变量,最常用的赋值运算符是“=”,赋值运算符的左边必须是一个变量,而不是一个值。赋值运算符见下表:
=
赋值
a = 3; b = 2;
+=
加等于
a = 3; b = 2; 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 = 3; b = 2; a %= b;
三、关系运算符
关系运算符用来比较两个值的关系,是双目运算符,运算结果为boolean类型。关系运算符见下表:
==
相等于
4 == 3
false
!=
不等于
4 != 3
true
<
小于
4 < 3
>
大于
4 > 3
<=
小于等于
4 <= 3
>=
大于等于
4 >= 3
instanceof
检查是否为类的对象
"a" instanceof String
四、逻辑运算符
逻辑运算符用于对boolean类型结果的表达式进行运算,运算结果都是boolean型的。
&
与
false & true
|
或
false | true
^
异或
true ^ false
!
非
! true
&&
false && true
||
false || true
注意:&与&&的区别在于,如果使用前者连接,那么无论何种情况,&两边的表达式都会参与运算。如果使用后者连接,当&&左边为false时,右边将不参与运算。同理|和||。
五、位运算符
数据在计算机内部是以二进制存储编码的,Java允许对这些二进制进行位运算。位运算符见下表:
位运算符
功能描述
x & y
按位进行与运算
x | y
按位进行或运算
x ^ y
按位进行异或运算
!x
按位进行非运算
>>
右移
x >> y
将x的二进制编码右移y位,前面的位由符号填充
<<
左移
x << y
将x的二进制编码左移y位,低位补0
>>>
无符号右移
x >>> y
将x的二进制编码右移y位,前面的位由0填充
六、其他运算符
三目运算符:一般形式为:<逻辑表达式1> ? <表达式2> : <表达式3>
():用于强制类型转换、方法调用。
[]:声明、创建数组及访问数据中的特定元素。
new:创建对象、数组。
.:访问类成员变量,对象成员变量。
七、运算符优先级
优先级
() []
高
++ -- ~ !
* / %
+ -
>> >>> <<
> >= < <=
== !=
?:
= += -= *= /= &= |= ^= <<= >>= >>>=
低