一、位移运算
位移运算符有三个,分别是 <<、>>、>>>
1. 左移(<<)
规则:最左侧位舍去,最右侧补零
2.右移 (>>)
规则:最右侧舍去,最左侧补符号位(正数的符号位是0,负数是1)
3.无符号右移(>>>)
规则:最右侧舍去,最左侧无论是正数还是负数都补0
注意:
a. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方
b. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方
c. 不存在无符号左移
二、条件运算符(三目预算符)
条件运算符在Java中只有一个,语法为:
表达式1?表达式2:表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.
注意:
a. 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换
b. 表达式不能单独存在,其产生的结果必须要被使用
三、运算符的优先级
在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同,有些情况下稍不注意,可能就会造成很大的麻烦。
有一个口诀可以帮助记忆:
单算移关与,异或逻条赋
(括号级别最高,逗号级别最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值)
不过,我认为具体的规则我们不必记忆的太详细,可以在可能存在歧义的代码上加上括号。