三. 操作符-运算符
运算符
算术运算符
- +加
- -减
- *乘
- \除
- 当运算式中有小数时,允许除数为0或0.0。
- 被除数为正,结果为正无穷(Infinity)
- 被除数为负,结果为负无穷(-Infinity)
- 当被除数为0,结果为NaN(NaN != NaN)
- 当运算式中有小数时,允许除数为0或0.0。
- %取模
- 当运算式中有小数时,取模数为0或0.0
- 结果一定为NaN
- 当运算式中有小数时,取模数为0或0.0
- ++自增
- --自减
- 运算顺序
int a = 5;
boolean b = (a++ > 5);// b=false
int c = 5;
boolean d = (++c > 5);//d = true
Math方法
位运算符
- & 位与
- | 位或
- ^ 位异或
- ~ 非
- << 左移
- >> 右移
- >>> 无符号右移
位移运算规则
- 低于int类型位移,操作数会先变成int型,再位移
- 对int类型位移,若位移数大于32,位移数对32取余,再基于取余的结果进行位移
- 对long类型位移,位移数大于64,位移数对64取余,再基于取余的结果进行位移
- 位移运算不改变操作数本身的大小
赋值运算符
- 连续赋值
int a = 0;
int b = 0;
a = b = 5;
- 拓展赋值
- +=
- -=
- /=
- *=
- %=
- &=
- |=
- ^=
- <<=
- >>=
- >>>=
推荐使用拓展的赋值运算符,能使程序:
- 性能更好
- 更健壮(什么叫健壮?)
比较运算符
- >
- >=
- <
- <=
- ==
- !=
> >= < <=
- 只能比较数值类型变量,
- 只比较值不比较类型
== !=
- 可以比较基本类型,引用类型
- 基本类型比较值,引用类型比较地址
- 是否可比
- 数值类型只能和数值类型比
- boolean只能和boolean比
- 引用类型只能和其子类或者父类比较地址
逻辑运算符
- & 与
- | 或
- ! 非
- ^ 异或
- && 短路与
- || 短路或
&与&&区别
- &会执行完两侧的判断后获得返回结果
- &&当左侧的判断为false时,直接返回false,右侧判断不继续执行
|与||区别
- |会执行完两侧的判断后获得返回结果
- ||当左侧的判断为true时,直接返回true,右侧判断不继续执行
三目运算符
- {exception}? A : B;
三目运算符可以嵌套使用
与if else区别
- 三目的判断执行后,分支只能执行单行代码
类型相关运算符
- instanceof (type)
见第五章