2. 运算符
大约 1 分钟
算数运算符
- +
- -:对单个数字使用表示负数
- *
- \:只包含整数时,为整数除法,否则为浮点数除法
注意
1/0将会产生一个除0异常
,浮点数除以0会得到无穷大(Infinity)或 NaN 的结果
- %:取余,也称取模,也可以使用
Math.floorMod
方法来实现取模,但要注意负数取模,一般也很少遇到
System.out.println( -11 % 12); // -11
System.out.println(Math.floorMod(-11, 12)); // 1
更多的运算需要借助Math
工具类来实现
如果需要更严格的计算,可以采用StrictMath
类来实现相同的算法,Math工具类采用平台计算,在浮点计算时,精度准确性都无法保障,但是性能会更好。
逻辑运算符
- &&:逻辑与,具有短路作用,如果第一个表达式为false,则执行后续表达式的运算
- ||:逻辑或,同上
- !:逻辑非
位运算符
- &:且,利用&可以只保留需要的位,掩掉其它位,如:7 & 0b100 = 4
- |:或,对应bit位上,有1则为1,否则为0
- ^:异或,对应bit位上,均为1则位0,否则不同则位1
- ~:按位取反
- >>: 有符号右移
- <<:左移,例如,整型int,1 << 35 的具体执行逻辑是:1 << (35 % 32) = 1 << 3 = 8
- >>>:无符号右移
三目运算符
a == b ? a : b