Java的运算符其实与C的运算符大体都是相同的,只有极个别几个在用法上会有一点点差异。我们也就简单的叙述一下了。
算数运算符:
1. 基本的四则运算符 :+ - * / % 这五种。
2. 增量运算符:+= -= *= /=
这种运算符,在运算完成之后会将结果 赋值 给左边的操作数。这种运算符非常的简便。
3. 自增自减运算符:++ --
这里的运算性质和C里面的是一样的。
关系运算符:
关系运算符主要由6个:== != < > <= >=
注意:
- 1. = 和 == 一定要分清楚;
- 2. 不可以连续的去判断。
逻辑运算符:
逻辑运算符有三个:&& || ! ,注意,使用逻辑运算符必须要是boollean类型的。
逻辑运算符在平时的使用非常的广泛,我们要牢记他们各自之间的关系。
在逻辑运算符下,我们需要知道他经常用于 短路求值 问题上。
注意:
- 对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。
- 对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。
- & 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值。
位运算符:
他主要有:^ & | ~;
其中只有 ~ 是一元运算符,其他都是二元运算符。
按位与 &,按位或 |,按位异或 ^ ,按位取反都是在以后二进制中常用到的。一定要牢记
移位运算
移位运算符有三个: 左移 << , 右移 >> 无符号右移 >>> ,都是二元运算符。
左移 <<: 最左侧位不要了, 最右侧补 0.
右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
注意:
- 1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
- 2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
- 3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
- 4. 移动负数位或者移位位数过大都没有意义.
条件运算符
条件运算符只有一个:也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法。
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。
注意:
- 1. 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换
- 2. 表达式不能单独存在,其产生的结果必须要被使用
运算符的优先级
运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可.