Java 五种常见的运算符:
算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一,算术运算符
5种双目算术运算符: +,-,*,/,%
2种单目算术运算符:++,--
注:“目”就是代表参与运算的操作成员数量。
单目运算符:指完成此类运算只需要一个操作数。
算数运算符 | 描述 | 实例 | 结果 |
+ | 求和 | 5+5 | 10 |
- | 求差 | 5-4 | 1 |
* | 两数相乘 | 2*3 | 6 |
/ | 两数相除 | 10/3 | 3 |
% | 取模(求余) | 10%3 | 1 |
++ | 自增(前,后) | ||
-- | 自减(前,后) |
注:
1.(自增、自减)采用前缀模式时,先执行自增或自减运算,再计算表达式的值;
2.(自增、自减)采用后缀模式时,先计算表达式的值,然后再执行自增或自减操作;
3.两数相除(/)运算如果是两个整数时结果只会显示整数,也叫取整。
4.通常会在书写表达式时,为清晰思路,即使不改变运算符优先级,也会使用圆括号,圆括号必须成对出现。
二,赋值运算符
运算符 | 描述 | 实例 |
= | 简单赋值操作符,将值从右边的操作数分配给左操作数 | C = A + B 将一个A + B值分配给C |
+= | 添加和赋值运算符,它将右操作数添加到左操作数,并将结果赋给左操作数 | C += A 相当于C = C + A |
-= | 减法和赋值操作符的右操作数,减去从左操作数并将结果赋给左操作数 | C -= A 相当于C = C - A |
*= | 乘法和赋值操作符的右操作数,它将与左操作数并将结果赋给左操作数 | C *= A 相当于C = C * A |
/= | 分隔和赋值运算符,它将左操作数和右操作数分开,并将结果赋给左操作数 | C /= A 相当于C = C / A |
%= | 余数和赋值运算符,它使用两个操作数取模,并将结果赋给左数 | C %= A 相当于C = C % A |
<<= | 左移位和赋值运算符 | C <<= 2 相当于C = C << 2 |
>>= | 右移位和赋值运算符 | C >>= 2 相当于C = C >> 2 |
&= | 位运算符和赋值操作符 | C &= 相当于C = C & 2 |
^= | 位异或运算和赋值操作符 | C ^= 2 相当于C = C ^ 2 |
|= | 逐位或和赋值操作符 | C |= 2 相当于C = C | 2 |
三,比较运算符(关系运算符)
运算符 | 描述 | 实例 |
== | 检查两个操作数的值是否相等或不相等,如果是的话,条件成为真。 | (A == B) is not true. |
!= | 检查两个操作数的值是否相等或不相等,如果值不相等则条件成为真。 | (A != B) is true. |
> | 检查左操作数的值是否大于右操作数的值,如果是的话条件成为真。 | (A > B) is not true. |
< | 检查左操作数的值是否小于右操作数的值,如果是的话条件成为真。 | (A < B) is true. |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是的话条件成为真。 | (A >= B) is not true. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是的话条件成为真。 | (A <= B) is true. |
四,逻辑运算符
运算符 | 描述 | 实例 |
&& | 被称为短路与。 | (A && B) is false. |
|| | 被称为短路或 | (A || B) is true. |
! | 被称为逻辑反 | !(A && B) is true. |
& | 被称为逻辑与运算符。 | (A & B) is false. |
| | 被称为逻辑或操作符。 | (A | B) is true. |
五,位运算符
运算符 | 描述 | 实例 |
& | 如果它存在于两个操作数中,二进制和操作符将对结果复制一点。 | (A & B) will give 12 which is 0000 1100 |
| | 如果它存在于任何一个操作数中,二进制或操作符复制一个位。 | (A | B) will give 61 which is 0011 1101 |
^ | 二进制异或操作复制点如果它被设置在一个操作数不。 | (A ^ B) will give 49 which is 0011 0001 |
~ | 二进制运算符是一元运算符具有“翻转”位的影响。 | (~A ) will give -61 which is 1100 0011 in 2‘s complement form due to a signed binary number. |
<< | 二进制左移位算子。左操作数的值是由右操作数指定的位数移动的。 | A << 2 will give 240 which is 1111 0000 |
>> | 二进制右移位算子。左操作数的值是由右操作数指定的位数移动的。 | A >> 2 will give 15 which is 1111 |
>>> | 移位右零填充算子。左操作数的值是由右操作数指定的位数移动的,而移位的值是用0填充的。 | A >>>2 will give 15 which is 0000 1111 |
Java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:
优先级 | 运算符 |
1 | () |
2 | ! +(正) -(负) ++ -- |
3 | * / % |
4 | +(加) -(减) |
5 | < <= > >= |
6 | == != |
7 | ^ |
8 | && |
9 | || |
10 | ?: |
11 | = += -= *= /= %= |
其他1:字符串连接符
“+”除了用于算术加法运算以外,还可以用于对字符串进行连接操作。
例如:
int i = 1 + 3;
String s = “Hello” + “World”;
“+”运算符两侧的操作数中只要有一个是字符串类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
其他2:条件运算符
唯一一个三目运算符。
语法如下:a=exp1?exp2:exp3;
如果exp1的结果为真(即非0),则a=exp2的值;否则a=exp3的值
例如:
big=(a>=b)?a:b;
a>=b为真,则big=a,否则big=b
原文地址:http://12170190.blog.51cto.com/12160190/1865972