2.1 圆括号 ()
-
优先级最高,可以强制改变默认的计算顺序。
- 常用于明确运算顺序,增强代码可读性。
示例:
int a = 10, b = 5, c = 2;
System.out.println(a + b * c);
System.out.println((a + b) * c);
2.2 自增和自减
- 后置
++
/--
:先使用当前值,再自增/自减。
- 前置
++
/--
:先自增/自减,再使用新值。
示例:
int a = 5;
System.out.println(a++);
System.out.println(++a);
2.3 一元运算符
- 包括前置
++
/--
、正负号(+
/-
)、按位取反(~
)、逻辑取反(!
)。
- 从右到左结合。
示例:
int a = 5;
System.out.println(-a);
System.out.println(!true);
System.out.println(~a);
2.4 算术运算符
-
乘法、除法、取模(
*
/
%
)的优先级高于加法、减法(+
-
)。
- 从左到右结合。
示例:
int a = 10, b = 3, c = 2;
System.out.println(a + b * c);
System.out.println(a % b + c);
2.5 位移运算符
-
优先级低于算术运算符,从左到右结合。
- 包括左移
<<
,有符号右移 >>
,无符号右移 >>>
。
示例:
int a = 8;
System.out.println(a >> 1);
System.out.println(a << 2);
2.6 比较运算符
-
优先级低于位移运算符。
- 包括
<
<=
>
>=
和 instanceof
。
示例:
int a = 5, b = 10;
System.out.println(a < b);
System.out.println(a instanceof Integer);
2.7 相等运算符
示例:
int a = 5, b = 5;
System.out.println(a == b);
System.out.println(a != b);
2.8 按位运算符
- 按位与(
&
)、按位异或(^
)、按位或(|
)。
-
优先级低于相等运算符。
示例:
int a = 5, b = 3;
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
2.9 逻辑运算符
- 包括逻辑与(
&&
)和逻辑或(||
)。
- 短路求值:遇到结果已确定时停止计算。
示例:
int a = 5, b = 0;
System.out.println((b != 0) && (a / b > 1));
2.10 三元运算符
- 格式:
condition ? value1 : value2
-
优先级低于逻辑运算符,从右到左结合。
示例:
int a = 5, b = 10;
System.out.println(a > b ? "a 大" : "b 大");
2.11 赋值运算符
- 包括
=
+=
-=
*=
/=
等复合运算符。
-
优先级最低(仅高于逗号运算符),从右到左结合。
示例:
int a = 5;
a += 10;
System.out.println(a);
2.12 逗号运算符
- 用于在一个表达式中顺序计算多个子表达式,结果为最后一个子表达式的值。
示例:
int a = (1, 2, 3);
System.out.println(a);