一. 算术运算符
1.基本四则运算符 + - * / %
a) int / int 结果还是 int, 需要使用 double 来计算
b) 0 不能作为除数 会报告异常(运行时异常)
c)% 表示取余, 不仅仅可以对 int 求模, 也能对 double 来求模(不同于C语言)
2.增量赋值运算符 += -= *= /= %=
a) 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别
b) 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值
二.关系运算符
关系运算符主要有六个: == != < > <= >=
注意: 关系运算符的表达式返回值都是 boolean 类型(true or false)
三.逻辑运算符
逻辑运算符主要有三个:&& || !
a)表达式1&&(||,!)表达式2 表达式必须是boolean类型
b)&& 和 || 遵守短路求值的规则
对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式.
对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.
c)当程序出现异常时立即终止,不会往下执行
& 和 | (不推荐使用)
& 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算. 但是和 && 以及 || 相比, 它们不支持短路求值.
四.位运算
Java 中对数据的操作的最小单位不是字节, 而是二进制位.
位运算符主要有四个:& | ~ ^
位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的
每一位依次进行计算.
五.移位运算
移位运算符有三个:<< >> >>>(无符号右移)
a)左移相当于乘法,右移相当于除法(正数补0,负数补1)
b)无符号右移补0
c)移动负数位或者移位位数过大都没有意义
六.条件运算符
条件运算符只有一个:表达式1 ? 表达式2 : 表达式3
七. 运算符的优先级
运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可