文章目录
- 1. 算术运算符
- 2. 赋值运算符
- 3. 比较(关系)运算符
- 4. 逻辑运算符
- 5. 位运算符
- 6. 条件运算符(三元运算符)
- 7. 运算符优先级
1. 算术运算符
- +:加法
int a = 5;
int b = 3;
int sum = a + b; // 结果为8
- -:减法
int c = a - b; // 结果为2
- *:乘法
int d = a * b; // 结果为15
- /:除法(结果为浮点数在整数除法时会被自动转换为浮点型)
double e = a / (double) b; // 强制转换其中一个为double以得到精确除法结果
- %:取模或求余数
int remainder = a % b; // 结果为2
2. 赋值运算符
- =:基本赋值
int x;
x = 10;
- 复合赋值运算符如 +=, -=, *=, /=, %=:
int y = 5;
y += a; // 相当于 y = y + a;
3. 比较(关系)运算符
- ==:等于
boolean equal = a == b; // false
- !=:不等于
boolean notEqual = a != b; // true
- <:小于
boolean lessThan = a < b; // false
- >:大于
boolean greaterThan = a > b; // true
- <=:小于等于
boolean lessThanOrEqual = a <= b; // false
- >=:大于等于
boolean greaterThanOrEqual = a >= b; // true
4. 逻辑运算符
- &&:逻辑与(AND)
boolean condition1 = true;
boolean condition2 = false;
boolean andResult = condition1 && condition2; // false
- ||:逻辑或(OR)
boolean orResult = condition1 || condition2; // true
- !:逻辑非(NOT)
boolean notResult = !condition1; // false
5. 位运算符
- &:按位与
int bitA = 6; // 十进制表示为 0b0110
int bitB = 3; // 十进制表示为 0b0011
int bitwiseAnd = bitA & bitB; // 结果为 2 (0b0010)
- |:按位或
int bitwiseOr = bitA | bitB; // 结果为 7 (0b0111)
- ^:按位异或
int bitwiseXor = bitA ^ bitB; // 结果为 5 (0b0101)
- ~:按位取反
int bitwiseNot = ~bitA; // 结果为 -7 (-0b1001)
- <<:左移
int leftShift = bitA << 1; // 结果为 12 (0b1100)
- >>:有符号右移
int rightShiftSigned = bitA >> 1; // 结果为 3 (0b0011)
- >>>:无符号右移
int rightShiftUnsigned = bitA >>> 1; // 结果为 3 (0b0011),高位补零
6. 条件运算符(三元运算符)
int max = a > b ? a : b; // 如果a大于b,则max为a,否则为b
7. 运算符优先级
图1
图2
-
运算符有不同的优先级。当表达式包含多个运算符时,优先级较高的运算符会先执行。以下是一份大致的Java运算符优先级列表(从高到低)
-
注意:如果两个运算符具有相同的优先级,那么它们将按照从左到右的顺序结合(称为“关联性”)。若要改变运算顺序,可以使用圆括号明确指定优先级。
-
例如,在表达式 a + b * c 中,因为乘法 (*) 的优先级高于加法 (+),所以会先计算 b * c 再加上 a。如果需要先进行加法运算,应写成 (a + b) * c。
-
圆括号 ():括号内的表达式总是最先执行。
-
一元运算符:
- ++、--(前置)
- +、-(作为一元运算符,如正负号)
- !、~(逻辑非和按位取反)
-
乘法与除法运算符:
- *
- /
- %
-
加法与减法运算符:
- +
- -
-
移位运算符:
- <<
- >>
- >>>
-
关系运算符:
- <
- >
- <=
- >=
- instanceof
-
等于性运算符:
- ==
- !=
-
位运算符:
- &
-
按位异或运算符:
- ^
-
位运算符:
- |
-
逻辑与运算符:
- &&
-
逻辑或运算符:
- ||
-
条件运算符(三元运算符):
- ? :
-
赋值运算符:
- =
- +=, -=,*=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=
-
逗号运算符:
- , (用于多个操作数的顺序求值,其结果为最后一个表达式的值)