(1)算术运算符
基本四则运算符:+ - * / %
值得注意的是除法:1.int/int结果还是int,此时需要使用double来计算;
2.0不能作为除数,会抛出异常
3.%表示取余,不仅可以对int求模,也可以对double求模
增量赋值运算符:+= -= = /= %=
例如:a += 1;等价于:a = a+1;
自增/自减运算符:++ –
注意:1.如果不取自增/自减运算的表达式的返回值,则前置自增(减)和后置自增(减)没有区别;
2.如果取表达式的返回值,则前置自增(减)的返回值是自增(减)之后的值,后置自增(减)的返回值是自增(减)之前的值;
3.一般++很常用,但不建议取返回值。
(2)关系运算符
主要有:== != < > <= >=
注意:关系运算符的表达式返回值都是double类型
(3)逻辑运算符
主要有:&& || !
注意:逻辑运算符的操作个数往往是关系运算符的结果和返回值都是boolean
短路求值:
对于逻辑与运算来说,左侧的表达式为false,整个表达式的值就确定一定是false,此时不必计算右侧的表达式
对于逻辑或来说,左侧的表达式为true,整个表达式的值就确定一定是true,此时不必计算右侧的表达式
(4)位运算符
java中对数据的操作的最小单位不是字节,而是二进制位
按位操作都是先把数据转换为二进制位数
位运算符主要有四个:& | ~ ^
按位与&:如果两个二进制数都是1,则结果为1,否则为0 ;
按位或|:如果两个二进制位都是0,则结果为0,否则为1;
按位取反~:如果该位为0,则转为1;为1则转为0;
按位异或^:如果两个数字的二进制位相同,则结果为0.否则为1.
(5)移位运算符
主要有:
左移<<:最左侧位不要,最右侧补0,左移一位相当于2
右移>>:最右侧位不要,最左侧补符号位(正数补0,负数补1),右移一位相当于/2
无符号右移>>>:最右侧位不要,最左侧补0
注意:
[常见考点]有些代码中如果乘以2的N次方或者除以2的N次方,可以使用移位运算来进行优化,CPU相比于乘除法,更擅长计算移位
[工程上]没必要用移位代替乘除
(6)条件运算符
表达式1?表达式2:表达式3
也是java中唯一的一个三目运算符,是条件判断语句的简化写法。