JAVA编程思想笔记 第三章 操作符
概念
JAVA操作符
- +-*/=用法与其他语言类似
- 优先级
- 赋值
- 基本类型:存储实际数值
a=4;
- 对象赋值:复制引用
Tank t1 = new Tank();
- 基本类型:存储实际数值
算术操作符
- +-*/% 除法会舍去小数位,不进行四舍五入
- 随机数
Random rand = new Random(47); int i = rand.nextInt(100); int j = rand.nextFloat(100); // nextLong() nextDouble()
- 自增自减
++a;a++;a--;--a;
- 前缀式: 操作符位于变量/表达式前方,先运算再生成值;
- 后缀式: 操作符位于变量/表达式后方,先生成值再运算;
关系运算符
- 关系运算符生成一个boolean类型结果 < > = <= >= !=
- 对于对象的比较使用equals(),通过覆盖equals方法进行比较
逻辑操作符
- 根据逻辑操作符生成一个布尔值
&& || !
- 不可以将非布尔值在逻辑表达式中使用
- 短路
一旦明确无误该表达式的值之后,其余部分将不进行计算
boolFunc(0) && boolFunc(1) && boolFunc(2)
直接常量
使编译器准确的知道生成什么样的类型.
0x2f Hexadecimal Lowercase
0x2F Hexadecimal Uppercase
0177 Octal
0xffff max char hex value
0x7f max byte hex value
0x7fff max short hex value
200L long suffix
1F float suffix
1d/1D double suffix
指数计数法
Java中 1.39e-43f = 1.39 * 10 ^ -43
float expFloat = 1.39e-43f; double expDouble = 47e47d;
按位操作符
||
---|:--😐---😐---:
&|与|||或
~|非|^|异或
移位操作符
- << 左移位操作符 低位补零
- >> 右移位操作符 符号为正,高位插入0;符号为负,高位插入1
- >>> 无符号右移位操作符 高位补零
三元操作符 if-else
boolean-exp ? value0 : value1
类型转换操作符 cast
- 窄化转换: 可能丢失信息 eg. double ->> int
int i = (int) 0.213d;
- 扩展转换: 无需进行显式类型转换
double i = 10;
- int不进行四舍五入,直接去掉小数部分,round()方法四舍五入