Java运算符分为算术、关系、逻辑、赋值、位运算和条件六类:算术支持数值计算与自增减;关系返回布尔值;逻辑具短路特性;赋值含复合形式;位运算操作二进制;三元实现简洁条件分支。
Java里的运算符按功能可分为六大类:算术、关系、逻辑、赋值、位运算和条件(三元)运算符。它们是构成表达式的基础,每类都有明确的使用场景和行为特点。
用于整数和浮点数的基本数学运算,包括:
注意:/ 对两个整数操作时结果仍是整数(截断小数),如 5/2 得 2;要得小数需至少一个操作数为浮点型,如 5.0/2 或 (double)5/2。% 只适用于数值类型,结果符号与被除数一致(如 -7 % 3 得 -1)。
用于判断两个值之间的关系,结果恒为 boolean 类型:
注意:== 比较的是值(对基本类型)或引用(对对象),不要与赋值符 = 混淆;字符串内容比较应使用 .equals(),而非 ==。
主要连接关系表达式,支持短路特性以提升效率:
false 时,右操作数不执行true 时,右操作数不执行补充:& 和 | 也可作逻辑运算符(非短路),但更常用于位运算;
^ 是异或,相同为 false,不同为 true。
= 是基础赋值符;复合赋值如 +=、-=、*=、/=、%= 等,隐含类型转换:
byte b = 1; b += 2; 合法(编译器自动处理类型收缩)b = b + 2; 会报错(b+2 结果为 int,不能直接赋给 byte)位运算符(& | ^ ~ > >>>)直接操作整数的二进制位,常用于权限控制、加密、高效计算等场景。
三元运算符(? :)提供单行条件赋值能力:
条件 ? 表达式1 : 表达式2
int,或能自动转为同一类型)int max = a > b ? a : b;
掌握这些运算符的关键在于理解其操作数类型、返回类型、执行顺序(优先级)以及副作用(如自增/自减、短路行为)。实际编码中多结合括号明确意图,避免因优先级引发歧义。