Java运算符
Java 里的运算符和 C / C++ 几乎同一套:算术算出数值,关系 / 逻辑算出布尔值,位运算按二进制逐位处理,再加上三目条件运算符。先把类别记牢,再对照下面的表和图。
下表是总览,后面按类展开,并配上原文截图。
| 类别 | 结果类型 | 常见符号 |
|---|---|---|
| 算术 | 数值 | + – * / % ++ — |
| 关系 / 逻辑 | boolean | > < >= <= == != && || ! |
| 位运算 | 整数 | & | ^ ~ << >> >>> |
| 条件(三目) | 两支中的一支 | condition ? x1 : x2 |
一、数学运算符
数学运算的结果是一个数值。自增分后自加(a++ 先取值再加)和前自加(++b 先加再取值)。

二、关系运算符
关系运算符和逻辑运算符的结果是布尔值。&& / || 会短路:左边已经能定结果,右边就不算了。

三、位运算符
位运算符对整数的二进制形式逐位做逻辑运算,得到一个整数。

-
与 &:两位都是 1,结果才是 1,否则是 0。 -
或 |:两位里只要有一个 1,结果就是 1,否则是 0。 -
非 ~:0 变 1,1 变 0(按补码逐位取反)。 -
异或 ^:两位相同结果为 0,不同为 1。
<< 左移相当于乘 2 的幂,>> 算术右移保留符号位。
四、条件运算符(三目)
写法是 condition ? x1 : x2。condition 必须是 boolean:为真取 x1,为假取 x2。
五、综合示例
下面把自增、关系、逻辑、位运算和移位放在同一个 main 里跑一遍。注意:示例里后自加之后 a 变成 11,后面的 a & x 用的是加过之后的值。
运行结果:后自加打印 10,随后 a 为 11;前自加直接打印 11。关系判断依次为 false、false、false、true。此时 a=11、x=10,a & x 为 10,a | x 为 11,y ^ z 为 31。a 左移 2 位得 44,y 右移 3 位得 2。
一句话总结:算术出数、关系出真假、位运算按二进制干活,三目按条件二选一;先分清类别,再小心 ++ 的先后和 && / || 的短路。
转载请注明来源:Java运算符






