Java 中,运算符的类型有:
- 算术运算符:+ - * / % ++ –
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 条件运算符
逻辑运算符
- 逻辑与 &,逻辑或 |,逻辑异或 ^
- 短路与 &&,短路或 ||,取反 !
a | b | a&b | a&&b | a|b | a||b | !a | a^b |
---|---|---|---|---|---|---|---|
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true | false |
- 1 & 1 才得1,其余都为0
- 1 | 0 得1,只有 0 | 0 才得 0
- 相同数字异或为0,不同为1
n = 0 ^ 0; // 0
n = 0 ^ 1; // 1
n = 1 ^ 0; // 1
n = 1 ^ 1; // 0
&& 与 & 的区别
- &&为短路与,如果第一个条件为 false,第二个条件不会判断,效率高
- &为逻辑与,不管第一个条件是否为 false,第二个条件都要判断,效率低
位运算符
- 按位取反:~
- 按位与:&
- 按位或:|
- 按位异或:^
- <<:扩大 2 的 n 次方
- 右移一位(带符号):>>,a>>b 将二进制的a右移b位,高位补符号位
- 右移一位(不带符号):>>>,a>>>b 将二进制的a右移b位,高位补0
使用位运算比普通运算效率高
条件运算符
逻辑表达式 1 ? 表达式2 : 表达式3
数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B