第三章 操作符
1、别名现象
赋值操作是对一个对象的引用,对象与对象相互赋值则丢失信息
2、生成数字:Random 类
-
nextInt / nextFloat …
3、可使用一元加减号
1 | // 以下操作均合法 |
4、关系操作符
-
若为基本类型,直接比较
-
不为基本类型,使用所有对象都适用的特殊方法 equals ()
- 默认执行比较引用,不可用于自己的新类
1 | n1.equals(n2) |
-
三元操作符
1 | // condition ? ex1 : ex2; |
5、逻辑运算符
与或非仅可用于布尔值
1 | // 错误实例 |
6、直接常量
-
后缀 L / F /D …
-
前缀 0x / 0 / 0b
-
可为数字字面量添加下划线,更可读(e.g. 1_000_000)
-
指数
- 注:结果不为一个数,返回 NaN(e.g. 0/0)
1 | expfloat = 1.39E-43f; |
7、按位操作符
&= |= ^= 均合法
8、移位操作符 >> <<
-
无符号右移:>>>,无论正负均在高位插入 0
- 对 byte /short:会先转为 int,右移、截断、赋值,可能得到 - 1 结果
- 推广:只要类型比 int 小均会被转换,可根据需求使用 cast 手动类型转换 / 提升
-
与等号组合:>>= <<=,移动等号左边指定的位数
9、移植:无需考虑,不同机器均相同
-
因而无 sizeof 操作符
注:溢出结果不会收到警告或出错
10、浮点数四舍五入
-
得到最接近整数:使用 Max.round () 方法
1 | double x = 9.997 |