运算符
算数运算符
运算符 |
运算 |
范例 |
结果 |
+ |
正号 |
+3 |
3 |
- |
负号 |
-3 |
-3 |
+ |
加 |
1+1 |
2 |
- |
减 |
1-1 |
0 |
* |
乘 |
1* 2 |
2 |
/ |
除 |
2/2 |
1 |
% |
取余 |
3%2 |
1 |
++ |
自增(前),先运算后取值 |
a=2;b=++a |
3 |
++ |
自增(后),先取值后运算 |
a=2;b=a++ |
b=2 |
-- |
自减(前),先运算后取值 |
a=2;b=--a |
b=1 |
-- |
自减(后),先取值后运算 |
a=2;b=a-- |
b=2 |
+ |
字符串连接 |
"a"+"b" |
"ab" |
赋值运算符
- 符号: =
- 扩展赋值运算符:+=、-=、%=、/=、=*
比较运算符
运算符 |
运算 |
范例 |
结果 |
== |
相等 |
1==2 |
false |
!= |
不想等 |
1!=2 |
true |
< |
小于 |
1<2 |
true |
> |
大于 |
1>2 |
flase |
<= |
小于等于 |
1<=2 |
true |
>= |
大于等于 |
1>=2 |
false |
instanceof |
检查是否类的对象 |
"Hello" instanceof String |
true |
逻辑运算符
-
&
逻辑与 ; |
逻辑或; !
逻辑非;&&
短路与;||
短路或;^
逻辑异或
| a|b | a&
b | a&&
b | a|
b | a||
b | !
a | ^
a |
| --- | --- | --- | --- | --- | --- | --- | --- |
| true | true | true | true | true | true | false | false |
| true | false | false | false | true | true | false | true |
| false | true | false | false | true | true | true | true |
| false | false | false | false | false | false | true | false |
位运算符
运算符 |
运算 |
范例 |
结果 |
<< |
左移 |
3<<2 |
=3*2*2=12 |
>> |
右移 |
3>>1 |
=3/2=1 |
>>> |
无符号右移 |
3>>>1 |
=3/2=1 |
& |
与运算 |
6&3 |
=2 |
` |
` |
或运算 |
6` |
`3 |
=7 |
^ |
异或运算 |
6^3 |
=5 |
~ |
取反运算 |
~6 |
=-7 |
三元运算符
- 格式:(条件表达式)?表达式1:表达式2
- 用途:简化
if-else
- 例子1:单个判断
int a = 3;
System.out.println(a==3?"对了":"错了")
int a = 3;
int b = 4;
System.out.println(a==2?"相等":(a>b)?"对了":"错了")
运算符优先级
- 如下表,上一行运算符总优先于下一行,从上往下由高到低
- 只有单目运算符、三元运算符、赋值运算符是从右向左运算的
|
. () {} ; , |
R->L |
++、--、!(data type) |
L->R |
* / % |
L->R |
+ - |
L->R |
<< >> >>> |
L->R |
< > <= >= instanceof |
L->R |
== != |
L->R |
& |
L->R |
^ |
L->R |
` |
` |
L->R |
&& |
L->R |
` |
|
` |
R->L |
? : |
R->L |
= *= /= %= |
R->L |
+= -= <<= >>= |
R->L |
>>>= &= ^= ` |
=` |
网友评论