目录
1.算数运算符
操作符 | 描述 | 示例 |
+ | 加法 - 相加运算符两侧的值 |
|
- | 减法 - 左边值 减去 右边值 |
|
* | 乘法 - 相乘操作符两侧的值 |
|
/ | 除法 - 左边值 除以 右边值 | 10/3=3 |
% | 取模 - 左边数 除以 右边数 所得的余数 | 10%3=1 |
++ | 自增: 操作数的值增加1 | a++; ++a |
-- | 自减: 操作数的值减少1 | a--; --a |
1.1a++ 与 ++a 的区别
a++:变量a先参与程序的执行,然后变量a自加1
++a:变量a自加1,再参与程序的执行
int a = 12;
int b = a++;
System.out.println(b);
System.out.println(a);
控制台打印结果:
12
13
2.逻辑运算符
操作符 | 描述 | 示例 |
&& | 逻辑与运算符。当且仅当两边都为真,条件才为真。 | true && false = false |
|| | 逻辑或操作符。两边任何一个为真,条件为真。 | true || false = true |
! | 逻辑非运算符。 | !true = false |
2.1短路运算
表达式1 && 表达式2 如果表达式1为false,根据&&的规则,已经可以判断出整个表达式的结果,就不会继续判断表达式2;
表达式1 || 表达式2 如果表达式1为true,根据||的规则,已经可以判断出整个表达式的结果,就不会继续判断表达式2
3.比较运算符
操作符 | 描述 | 示例 |
> | 大于 |
|
< | 小于 |
|
>= | 大于等于 |
|
<= | 小于等于 |
|
== | 等于,判断两个变量的值是否相等 |
|
!= | 不等于 |
|
4.赋值运算符
操作符 | 描述 | 示例 |
+= | 加等于 | a += 1 等价于 a = a + 1 |
-= | 减等于 |
|
*= | 乘等于 |
|
/= | 除等于 |
|
%= | 取模等于 | a %= 3 等价于 a = a % 3 |
= | 等于 | a = 1 |
5.位运算符
操作符 | 描述 | 示例 |
& | 与,如果对应位都是1,则结果为1,否则为0 | 2&3 = 0010 & 0011 = 0010 |
| | 或,如果对应位都是0,则结果为0,否则为1 | 2|3 = 0010 | 0011 = 0011 |
^ | 异或,如果对应位的值相同,则结果为0,否则为1 | 2^3 = 0010 ^ 0011 = 0001 |
~ | 非,按位取反运算符,二进制补码按位取反,即0变成1,1变成0 | ~60 = -61 |
<< | 按位左移运算符,二进制原码按位左移,低位补0 | 6 << 2 = 24 |
>> | 按位右移运算符,二进制原码按位右移,低位舍弃 | 6 >> 2 = 1 |
>>> | 按位无符号右移,低位舍弃,高位补0 | 60 >>> 2 = 15 |
二进制原码反码补码转换 | ||
正数 | 符号位=0 | 原码=反码=补码 |
负数 | 符号位=1 | 反码=符号位不变,原码取反 |
补码=反码+1 |
6.三元运算符 ?:
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符主要是决定哪个值应该赋值给变量。
(expression) ? value if true : value if false
示例:
int a = 1;
int b = 2;
String c = (a > b) ? "yes" : "no";
7.运算符优先级
运算符有优先级,如果不确定运算符的优先级,可以使用小括号将需要的计算代码括起来
运算符优先级,从左到右越来越低:
() ++ -- ! ~ instanceof * / % + -
<< >> >>>
< > <= >= == !=
& ^ && || ?: