1.算数运算符
假设:
int x = 20;
int y = 10;
操作符 | 描述 | 例子 |
---|---|---|
+ | 两侧的值进行相加 | x + y 为 30 |
- | 前者的值减去后者的值 | x - y 为10 |
* | 两侧的值进行相乘 | x * y 为200 |
/ | 前者的值除以后者的值 | x / y 为2 |
% | 前者的值对后者的值取余 | x % y 为0 |
++ | 操作数的值自加一 | x++后x的值为21 |
– | 操作数的值自减一 | x–后x的值为19 |
2.关系运算符
关系元素符返回值都是boolean类型,要么为true,要么为false
运算符 | 描述 |
---|---|
== | 判断两侧的值是否相等,相等返回true,否则返回false |
!= | 判断两侧的值是否不等,不等返回true |
< | 前者是否小于后者,小于则返回true |
> | 前者是否大于后者,大于则返回true |
<= | 前者是否小于等于后者,小于等于则返回true |
>= | 前者是否大于等于后者,大于等于则返回true |
int x = 20;
int y = 10;
System.out.println(x == y);
System.out.println(x != y);
System.out.println(x < y);
System.out.println(x > y);
System.out.println(x <= y);
System.out.println(x >= y);
false
true
false
true
false
true
3.逻辑运算符
逻辑运算符的返回结果都是boolean类型
运算符 | 描述 |
---|---|
&& | 逻辑与运算符,前者和后者如果同时为true,则返回true,否则返回false,具有短路功能 |
|| | 逻辑或运算符,前者和后者如果同时为falsel,则返回false,否则返回true,具有短路功能 |
! | 逻辑非运算符,对逻辑进行取反,对true取反返回false,对false取反返回true |
& 和 |同时也有逻辑运算功能,但是无法短路
System.out.println(true && true);
System.out.println(true && false);
System.out.println(false && false);
System.out.println(true || true);
System.out.println(true || false);
System.out.println(false || false);
System.out.println(!true);
System.out.println(!false);
true
false
false
true
true
false
false
true
4.位运算符
位操作表示按二进制位运算,计算机中都是使用二进制来表示数据的,按位运算就是在按照二进制位的每一位依次进行计算。
运算符 | 描述 |
---|---|
& | 按位与,如果两个二进制位都是1,结果为1,否则为0 |
| | 按位或,如果两个二进制位有一个是1,结果为1,否则为0 |
~ | 按位取反,如果该位为0,则结果为1,如果该位为1,则结果为0 |
^ | 按位异或,如果两个数字的二进制位相同,则结果为0,否则为1 |
5.移位运算符
同样是按照二进制位进行运算
运算符 | 描述 |
---|---|
>> | 最右侧位舍弃,最左侧补符号位 |
<< | 最左侧位舍弃,最右侧补0,相当于乘以2 |
>>> | 最右侧舍弃,最左侧无论符号,都补0 |
计算机移位运算效率高于乘除,所以一个数乘以8的最快运算就是<<3
6.条件运算符
表达式1 ? 表达式2 : 表达式3
当表达式1的值为true时,执行表达式2,否则执行表达式3
7.赋值运算符
可以分为普通的,例如"=",以及扩展的,都具有赋值的功能
运算符 | 描述 |
---|---|
= | 基本的赋值运算符,直接把后者的值赋给前者 |
+= | 左操作数和右操作数相加赋给左操作数 |
-= | 左操作数和右操作数相减赋给左操作数 |
*= | 乘后赋给左操作数 |
/= | 相除后赋给左操作数 |
%= | 取余后赋给左操作数 |
>>= | 左操作数右移右操作数的位数后,赋值给左操作数 |
<<= | 左移后赋给左操作数 |
>>> = | 无符号右移后赋给左操作数 |
&= | 左操作数和右操作数按位与后赋给左操作数 |
|= | 按位或赋给左操作数 |
^= | 按位异或后赋给左操作数 |