第4章 运算符
- 算术运算符;
- 赋值运算符;
- 关系运算符;
- 逻辑运算符;
- 位运算符;
- 三元运算符
1. 算术运算符
-
++
前++:++i 先自增后赋值;
后++:i++ 先赋值后自增; -
/
整数之间做除法,只保留整数部分而舍弃小数部分; -
%
当对一个数取模时,可以等价 a%b=a-a/b*b,这样我们可以看到取模的本质运算。
2. 关系运算符
- !=
不等于 - instanceof
检查是否是类的对象
3.逻辑运算符
- 短路与 &&, 短路或 ||, 取反 !
- 逻辑与 &,逻辑或||, 逻辑异或 ^
- &&和&的区别
- &&短路与:如果第一个条件位false,则第二个条件不会判断,最终结果位false,效率高;
- &逻辑与:不管第一个条件是否为false, 第二个条件都要判断,效率低;
- 开发中,我们使用的基本都是&&, 效率高;
4.赋值运算符
5.三元运算符
- 条件表达式?表达式1:表达式2
- 运算规则
1) 如果条件表达式为true, 运算后的结果是表达式1;
2)如果条件表达式为false, 运算后的结果是表达式2;
6. 运算符优先级
7. 原码、反码、补码
对于有符号的而言:
- 二进制最高位是符号位:0表示正数,1表示负数;
- 正数的源码,反码,补码都一样(三码合一);
- 负数的反码=它的原码符号位不变,其余各位取反;
- 负数的补码=它的反码+1,负数的反码=负数的补码-1
- 0的反码补码都是0
- java没有无符号数,
- 在计算机运算的时候,都是以补码的方式来运算的;
- 当我们看运算结果的时候,要看它的原码
8. 位运算符
- 算术右移>>: 低位溢出,符号位不变,并用符号位补溢出的高位;
- 算术左移<<:符号位不变,低位补0;
-
逻辑右移也叫做无符号右移,运算规则是:低位溢出,高位补0;