java 运算符
算术运算符
运算符 |
介绍 |
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
取余数 |
++ |
自增 |
-- |
自减 |
+= |
a += b 等价于 a = a + b |
-= |
a -= b 等价于 a = a - b |
*= |
a *= b 等价于 a = a * b |
/= |
a /= b 等价于 a = a / b |
%= |
a %= b 等价于 a = a % b |
布尔运算符
运算符 |
介绍 |
& |
逻辑与 |
| |
逻辑或 |
^ |
逻辑异或(异或) |
|| |
短路或(常用) |
&& |
短路与(常用) |
! |
非(常用) |
&= |
和分配 |
|= |
或分配 |
^= |
异或分配 |
== |
等于 |
!= |
不等于 |
? : |
三元 if-then-else |
关系运算符
运算符 |
介绍 |
== |
等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
三元运算符
( 使用得当的话,可以很少的简化代码! )
条件表达式 ? 表达式1 : 表达式2
如果条件为真,返回表达式1,否则返回表达式2
例如:
System.out.println(i < 0 ? "i是负数" : "i不是负数");
//表示:先判断 i < 0,如果为真则打印"i是负数",如果不为真则打印"i不是负数"。
按位运算符
运算符 |
介绍 |
~ |
按位一元NOT(运算符取反,翻转操作数的每一位,即0变成1,1变成0) |
& |
按位AND(如果相对应位都是1,则结果为1,否则为0) |
| |
按位或(如果相对应位都是0,则结果为0,否则为1) |
^ |
按位异或(如果相对应位值相同,则结果为0,否则为1) |
>> |
向右移动(左操作数按位右移右操作数指定的位数。) |
>>> |
右移零填充(左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。) |
<< |
向左移动(左操作数按位左移右操作数指定的位数。) |
运算符优先级
优先级 |
运算符 |
结合性 |
1 |
() [] . |
从左到右 |
2 |
! +(正) -(负) ~ ++ -- |
从右向左 |
3 |
* / % |
从左向右 |
4 |
+(加) -(减) |
从左向右 |
5 |
<< >> >>> |
从左向右 |
6 |
< <= > >= instanceof |
从左向右 |
7 |
== != |
从左向右 |
8 |
& |
从左向右 |
9 |
^ |
从左向右 |
10 |
| |
从左向右 |
11 |
&& |
从左向右 |
12 |
|| |
从左向右 |
13 |
?: |
从右向左 |
14 |
= += -= *= /= %= &= |= ^= ~= <<= >>= >>>= |
从右向左 |