目录
算术运算符
| 运 算 符 | 名 称 | 说 明 | 例 子 |
|---|---|---|---|
| - | 取反符号 | 取反运算 | b=-a |
| ++ | 自加一 | 先取值再加一,或先加一再取值 | a++ 或 ++a |
| -- | 自减一 | 先取值再减一,或先减一再取值 | a-- 或 --a |
| 运 算 符 | 名 称 | 说 明 | 例 子 |
|---|---|---|---|
| + | 加 | 求 a 加 b 的和,还可用于 String 类型,进行字符串连接操作 | a + b |
| - | 减 | 求 a 减 b 的差 | a - b |
| * | 乘 | 求 a 乘以 b 的积 | a * b |
| / | 除 | 求 a 除以 b 的商 | a / b |
| % | 取余 | 求 a 除以 b 的余数 | a % b |
赋值运算符
| 运算符 | 含义 | 实例 | 结果 |
|---|---|---|---|
| += | 将该运算符左边的数值加上右边的数值, 其结果赋值给左边变量本身 | int a=5; a+=2; | a=7 |
| -= | 将该运算符左边的数值减去右边的数值, 其结果赋值给左边变量本身 | int a=5; a-=2; | a=3 |
| *= | 将该运算符左边的数值乘以右边的数值, 其结果赋值给左边变量本身 | int a=5; a*=2; | a=10 |
| /= | 将该运算符左边的数值整除右边的数值, 其结果赋值给左边变量本身 | int a=5; a/=2; | a=2 |
| %= | 将该运算符左边的数值除以右边的数值后取余,其结果赋值给左边变量本身 | int a=5; a%=2; | a=1 |
逻辑运算符
| 运算符 | 用法 | 含义 | 说明 | 实例 | 结果 |
|---|---|---|---|---|---|
| && | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 | 2>1&&3<4 | true |
| || | a||b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 | 2<1||3>4 | false |
| ! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true | !(2>4) | true |
| | | a|b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true | 1>2|3>5 | false |
| & | a&b | 逻辑与 | ab 全为 false 时,计算结果为 false,否则为 true | 1<2&3<5 | true |
&和&&的特点:
&:无论左边是true是false,右边都运算
&&:当左边是false时,右边不运算
|:两边都参加运算
||:当左边为true,右边不运算
比较运算符
| 运算符 | 含义 | 说明 | 实例 | 结果 |
|---|---|---|---|---|
| > | 大于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值大于后面变量的值, 则返回 true。 | 2>3 | false |
| >= | 大于或等于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值大于等于后面变量的值, 则返回 true。 | 4>=2 | true |
| < | 小于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值小于后面变量的值,则返回 true。 | 2<3 | true |
| <= | 小于或等于运算符 | 只支持左右两边操作数是数值类型。如果前面变量的值小于等于后面变量的值, 则返回 true。 | 4<=2 | false |
| == | 相等运算符 | 如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 Java 也支持两个 boolean 类型的值进行比较。 | 4==4 97=='a' 5.0==5 true==false | true true true false |
| != | 不相等运算符 | 如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回 true。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回 true。 | 4!=2 | true |
位运算符
| 运算符 | 含义 | 实例 | 结果 |
|---|---|---|---|
| << | 按位左移 | 3<<2(3*2*2) | 12 |
| >> | 按位右移 | 3>>1(3/2) | 1 |
| >>> | 无符号右移 | 3>>>1(3/2) | 1 |
| & | 按位进行与运算(AND) | 4 & 5 | 4 |
| | | 按位进行或运算(OR) | 4 | 5 | 5 |
| ^ | 按位进行异或运算(XOR) | 4 ^ 5 | 1 |
| ~ | 按位进行取反运算(NOT) | ~ 4 | -5 |
位运算是直接对二进制进行运算
<<:其实就是乘以2的移动的位数次幂
>>:就是除以2的移动的位数次幂
>>:最高位补什么由原有数据的最高位值而定
如果最高位0,右移后,用0补空位
如果最高位1,右移后,用1补空位
>>>:无论最高位是什么,右移后,都用0补
一个数异或同一个数两次,结果还是那个数
三元运算符
格式:(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
2万+

被折叠的 条评论
为什么被折叠?



