在Java编程的浩瀚宇宙中,运算符与表达式是构成程序逻辑基石的关键元素。随着JDK 21的发布,Java语言在保持其强大、稳定特性的同时,也不断引入新特性和优化。尽管运算符与表达式的基本概念在Java的各个版本中保持稳定,但深入理解这些基础概念对于编写高效、可维护的代码至关重要。本文将带你探索Java中的运算符与表达式。
一、运算符:程序逻辑的指挥棒
1. 算术运算符
算术运算符用于执行基本的数学运算,包括加法(+
)、减法(-
)、乘法(*
)、除法(/
)、取余(%
)和自增/自减(++
/--
)。在JDK 21中,这些运算符的行为与以往版本保持一致,但值得注意的是,Java对于整数除法的溢出处理以及浮点数的精度控制始终是需要开发者谨慎处理的。
int sum = 5 + 3; // 加法
int diff = 10 - 4; // 减法
int product = 6 * 7; // 乘法
double quotient = 20.0 / 4; // 除法
int remainder = 9 % 4; // 取余
int increment = sum++; // 自增
2. 关系运算符
关系运算符用于比较两个值,返回布尔值(true
或false
)。这些运算符包括等于(==
)、不等于(!=
)、大于(>
)、小于(<
)、大于等于(>=
)和小于等于(<=
)。
boolean isEqual = (5 == 5); // true
boolean isNotEqual = (5 != 3); // true
3. 逻辑运算符
逻辑运算符用于布尔值的组合,包括逻辑与(&&
)、逻辑或(||
)和逻辑非(!
)。在JDK 21中,逻辑运算符的性能可能得到了进一步优化,但它们的语义保持不变。
boolean andResult = (true && false); // false
boolean orResult = (true || false); // true
boolean notResult = !true; // false
4. 位运算符
位运算符直接对二进制位进行操作,包括按位与(&
)、按位或(|
)、按位取反(~
)、按位异或(^
)和左移(<<
)、右移(>>
)、无符号右移(>>>
)。
int bitwiseAnd = 5 & 3; // 1
int bitwiseOr = 5 | 3; // 7
int bitwiseNot = ~5; // -6 (二进制补码表示)
5. 其他运算符
Java还提供了条件运算符(? :
)、赋值运算符(=
及其复合形式如+=
)、类型转换运算符((type)
)、实例判断运算符(instanceof
)等。
二、表达式:计算与赋值的桥梁
1. 表达式的构成
表达式是由常量、变量、运算符以及方法调用等构成的序列,用于计算一个值。在Java中,表达式可以出现在赋值语句的右侧、方法调用的参数中、条件语句的判断条件中等。
2. 表达式的求值顺序
Java遵循严格的运算符优先级和结合性规则来确定表达式的求值顺序。例如,乘法(*
)的优先级高于加法(+
),因此3 + 4 * 2
的结果为11
而非14
。
3. 表达式的副作用
某些表达式在执行时会修改变量的值,这种修改称为表达式的副作用。例如,自增运算符(++
)和自减运算符(--
)就具有副作用。