运算符
算术运算符
| 运算符 |
运算 |
范例 |
结果 |
+ |
正号 |
+7 |
7 |
- |
负号 |
b=11;-b |
-11 |
+ |
加 |
9+9 |
18 |
- |
减 |
10-8 |
2 |
* |
乘 |
7*8 |
56 |
/ |
除 |
9/9 |
1 |
% |
取模(取余) |
11%9 |
2 |
++ |
自增 (前):先运算后取值 |
a=2;b=++a; |
a=3;b=3 |
++ |
自增 (后):先取值后运算 |
a=2;b=a++; |
a=3;b=2 |
-- |
自减 (前):先运算后取值 |
a=2;b=--a; |
a=1;b=1 |
-- |
自减 (后):先取值后运算 |
a=2;b=a--; |
a=1;b=2 |
+ |
字符串相加 |
"hsp"+"edu" |
"hsp edu" |
关系运算符
| 运算符 |
运算 |
范例 |
结果 |
== |
相等于 |
8 == 7 |
false |
!= |
不等于 |
8 != 7 |
true |
< |
小于 |
8 < 7 |
false |
> |
大于 |
8 > 7 |
true |
<= |
小于等于 |
8 <= 7 |
false |
>= |
大于等于 |
8 >= 7 |
true |
instanceof |
检查是否是类的对象 |
"hsp" instanceof String |
true |
逻辑运算符
- 短路与
&&(第一个为假,就不会判断第二个),短路或 ||,取反 !
- 逻辑与
&(第一个为假,依旧会判断第二个),逻辑或 |,逻辑异或 ^
| 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 |
Java VS C++
- 对于
&&、|| 和 !,你可以认为它们在 C++ 和 Java 中没有任何区别。
- 对于
&、| 和 ^,虽然它们在 C++ 中的“官方身份”是位运算符,但当它们被用于布尔值时,其 不短路 的行为和 最终的逻辑结果 与 Java 完全一致。
- 最大的不同在于 概念层面:Java 明确区分了
& (不短路逻辑) 和 && (短路逻辑),而 C++ 则主要区分 & (位运算) 和 && (逻辑运算),不短路的效果是位运算的自然结果。
赋值运算符
优先级