目录
一、算术运算符
基本的算术运算符:+、-、*、/、%
注意:
/与%的右操作数不能为0。
int / int的结果还是int类型,而且会向下取整。
Java中,小数也可以使用%。
两侧操作数类型不一致时,向类型大的提升。
二、自增/自减 运算符
++、--
前置++,先++,再使用。后置++,先使用,再++。
三、关系运算符
>、<、==、!=、>=、<=,结果为true或false。
注意:需要多次判断时,如3 < a < 5需要用到逻辑运算符。
四、逻辑运算符
1.逻辑与 &&
左右都为true,结果才是true。
2.逻辑或 ||
左右有一个为true,即为true。
3.逻辑非 !
真变假,假变真。
短路求值
&& 和 || 遵守短路求值的规则.
System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true
我们都知道, 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值.
注意:
对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式. & 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值。
五、位运算符
位运算符主要操作的是数据的二进制比特位,主要有四个:&、|、~、^
1.按位与 &
二进制位相同为0,相异为1
2.按位或 |
二进制位只要有一个为1即为1,否则为0.
3.按位取反
除符号位外按位取反
4.按位异或
二进制位相同为0,相异为1
六、移位运算符
1.左移<<:最左侧不要,最右侧补0.
2.右移>>:最右侧不要,最左侧补符号位(整数补0,负数补1)
3.无符号右移>>>:最右侧不要,最左侧补0
注意:移动负数位或移位位数过大都没有意义。
七、条件运算符
表达式1 ? 表达式2 : 表达式3
表达式1为true时,整个表达式的值为表达式2,否则为表达式3。
(1)表达式2,3要同类型的
(2)表达式不能单独存在,也就是产生的结果必须要被使用