java中的操作符
学习提示:本节给出了Java语言中的所有操作符以及它们的用法和描述,还给出了它们的优先级,以供随时查阅。
Java语言中的操作符及操作符的优先级
算术操作符
|
Operator |
Use |
Description |
|
+ |
op1 + op2 |
返回op1和op2的和 |
|
- |
op1 - op2 |
返回op1和op2的差 |
|
* |
op1 * op2 |
返回op1和op2的积 |
|
/ |
op1 / op2 |
返回op1除以op2的商 |
|
% |
op1 % op2 |
返回op1除以 op2的余数 |
关系操作符
|
Operator |
Use |
Description |
|
> |
op1 > op2 |
当op1 大于op2 时返回true |
|
>= |
op1 >= op2 |
当op1 大于或等于op2 时返回true |
|
< |
op1 < op2 |
当op1 小于op2 时返回true |
|
<= |
op1 <= op2 |
当op1 小于或等于op2 时返回true |
|
== |
op1 == op2 |
当op1 等于大于op2 时返回true |
|
!= |
op1 != op2 |
当op1 不等于op2 时返回true |
条件操作符
|
Operator |
Use |
Description |
|
&& |
op1 && op2 |
当op1和op2都是true时,返回true ;如果op1的值是false,则不运算右边的操作数 |
|
|| |
op1 || op2 |
当op1和op2有一个是true时,返回true;如果op1的值是true,则不运算右边的操作数 |
|
! |
! op |
当op是false时,返回true;当op是true时,返回false |
|
& |
op1 & op2 |
运算op1和op2;如果op1和op2都是布尔值,而且都等于true,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位与操作 |
|
| |
op1 | op2 |
运算op1和op2;如果op1和op2都是布尔值,而且有一个等于true,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位或操作 |
|
^ |
op1 ^ op2 |
运算op1和op2;如果op1和op2不同,即如果有一个是true,另一个不是,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位异或操作 |
移动操作符
|
Operator |
Use |
Operation |
|
>> |
op1 >> op2 |
将op1的位向右移动,距离由op2决定;左边的位填上最高位(符号位) |
|
<< |
op1 << op2 |
将op1的位向左移动,距离由op2决定;右边的位填上0 |
|
>>> |
op1 >>> op2 |
将op1的位向右移动,距离由op2决定;左边的位填上0 |
位操作符
|
Operator |
Use |
Operation |
|
& |
op1 & op2 |
运算op1和op2;如果op1和op2都是布尔值,而且都等于true,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位与操作 |
|
| |
op1 | op2 |
算op1和op2;如果op1和op2都是布尔值,而且有一个等于true,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位或操作 |
|
^ |
op1 ^ op2 |
运算op1和op2;如果op1和op2不同,即如果有一个是true,另一个不是,那么返回true,否则返回false;如果op1和op2都是数字,那么执行位异或操作 |
|
~ |
~op2 |
位补,即反转op2的每一位,如果位是1,结果是0,如果位是0,结果是1 |
位与
|
op1 |
op2 |
Result |
|
0 |
0 |
0 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
位或
|
op1 |
op2 |
Result |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
1 |
位异或
|
op1 |
op2 |
Result |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
赋值操作符
|
Operator |
Use |
Equivalent to |
|
+= |
op1 += op2 |
op1 = op1 + op2 |
|
-= |
op1 -= op2 |
op1 = op1 - op2 |
|
*= |
op1 *= op2 |
op1 = op1 * op2 |
|
/= |
op1 /= op2 |
op1 = op1 / op2 |
|
%= |
op1 %= op2 |
op1 = op1 % op2 |
|
&= |
op1 &= op2 |
op1 = op1 & op2 |
|
|= |
op1 |= op2 |
op1 = op1 | op2 |
|
^= |
op1 ^= op2 |
op1 = op1 ^ op2 |
|
<<= |
op1 <<= op2 |
op1 = op1 << op2 |
|
>>= |
op1 >>= op2 |
op1 = op1 >> op2 |
|
>>>= |
op1 >>>= op2 |
op1 = op1 >>> op2 |
其他操作符
|
Operator |
Description |
|
?: |
简写的的if-else语句,唯一的三元操作符 |
|
[] |
用于声明数组、创建数组和访问数组元素 |
|
. |
用于组成限定名 |
|
( params ) |
标出一个以逗号分隔的参数列表的范围 |
|
( type ) |
将一个值转换为指定的类型 |
|
new |
创建一个对象或数组 |
|
instanceof |
判断它的第一个操作数据数是否是它的第二个操作数的实例 |
操作符优先级
|
postfix perators |
[] . (params) expr++ expr-- |
|
unary operators |
++expr --expr +expr -expr ~ ! |
|
creation or cast |
new (type)expr |
|
multiplicative |
* / % |
|
additive |
+ - |
|
shift |
<< >> >>> |
|
relational |
< > <= >= instanceof |
|
equality |
== != |
|
bitwise AND |
& |
|
bitwise exclusive OR |
^ |
|
bitwise inclusive OR |
| |
|
logical AND |
&& |
|
logical OR |
|| |
|
conditional |
? : |
|
assignment |
= += -= *= /= %= &= ^= |= <<= >>= >>>= |
注:上面的操作数优先级从上到下依次降低,同一个单元格内的优先级相同
|
操作 |
优先级 |
结合性 |
|
后缀运算符 |
[ ] . ( ) (函数呼叫) |
从左到右 |
|
单目运算符 |
! ~ ++ -- +(单操作数) –(单操作数) |
从右到左 |
|
创建 |
new |
从左到右 |
|
乘除 |
* / % |
从左到右 |
|
加减 |
+ - |
从左到右 |
|
移位 |
<< >> >>> |
从左到右 |
|
关系 |
< <= > >= instanceof |
从左到右 |
|
相等 |
== != |
从左到右 |
|
按位与 |
& |
从左到右 |
|
按位异或 |
^ |
从左到右 |
|
按位或 |
| |
从左到右 |
|
逻辑与 |
&& |
从左到右 |
|
逻辑或 |
|| |
从左到右 |
|
条件 |
? : |
从右到左 |
|
赋值 |
= += -= *= /= %= ^= <<= >>= >>>= |
从右到左 |

浙公网安备 33010602011771号