运算符
算数运算
符号 |
含义 |
+ |
加 |
- |
减 |
* |
乘 |
/ |
除 |
% |
取余 |
++ |
自增 |
-- |
自减 |
y = x++;//当自增自减运算符与赋值运算符一起使用时,都是先算++后算赋值
对于y的值:x++用加之前的值,++x用加之后的值
对于x本身:都是自增
两个引用数据类型相加,若是包装类则自动装箱拆箱完成操作,若是其他的则调用toString()方法完成拼接
System.out.println(7%3);
System.out.println(7%-3);
System.out.println(-7%3);
int a = 1;
a = a++;
int m = 1;
int n = 2;
int sum = m++ + ++n - n-- - --m + n-- - --m;
赋值运算
符号 |
含义 |
= |
赋值 |
+=、-=、*=、/=、%= |
运算赋值 |
int a = 1;
a += 1;
int b = 1;
b += 1+2;
byte x = 1;
x = x + 2
x = (byte) (x + 2);
x += 2;
x += 200;
关系运算
符号 |
含义 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
!= |
不等于 |
== |
等于 |
对象 instanceof 类 |
判定对象是否是类或该类子类产生的 |
对于==
符号,对于数值类型比较两个值是否一致,对与引用数据类型比较两个地址是否一致
逻辑运算
符号 |
含义 |
& |
与 |
| |
或 |
^ |
异或 |
! |
非 |
&& |
短路与 |
|| |
短路或 |
位运算
符号 |
含义 |
& |
按位与 |
| |
按位或 |
^ |
按位异或 |
~ |
按位取反 |
<< |
按位左移 |
">>" |
按位右移(补符号位) |
">>>" |
无符号按位右移(补0) |
int a = 1;
int b = 2;
int t = a;
a = b;
b = t;
a = a + b;
b = a - b;
a = a - b;
a = a ^ b;
b = a ^ b;
c = a ^ b;
条件运算符
符号 |
含义 |
?: |
条件为真返回第一表达式,反正返回第二个 |
运算符的优先级
优先级 |
运算符 |
结合性 |
1 |
( ) [ ] . |
从左到右 |
2 |
! ~ ++ -- |
从右到左 |
3 |
* / % |
从左到右 |
4 |
+ - |
从左到右 |
5 |
<< >> >>> |
从左到右 |
6 |
< <= > >= instanceof |
从左到右 |
7 |
== != |
从左到右 |
8 |
& |
从左到右 |
9 |
^ |
从左到右 |
10 |
| |
从左到右 |
11 |
&& |
从左到右 |
12 |
|| |
从左到右 |
13 |
?: |
从左到右 |
14 |
= += -= *= /= %= &= |= ^= ~= <<= >>= >>>= |
从右到左 |
15 |
, |
从右到左 |
单算移关与,异或逻条赋
括号级别最高,逗号级别最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。
Comments NOTHING