运算符总结
1,算术运算符:
+ 加或正号
-减或负号
*乘
/除,得到的是商
%取余
++自增
- -自减
+字符串连接符
注意:
A:整数相除结果还是整数
B:+ 从左向右依次运算
C:% 两个操作数,分为左边和右边
左边小于右边,结果是左边
左边等于右边,结果为0
左边大于右边,结果是余数
终于的余数的符号和左边的操作数一直
D:++和- -
假设单独使用:位置前后效果一样
假设參与操作使用:放后面是先操作再++或- -。
放前面是先++或- -再操作。
2,赋值运算符:
=赋值
+=
-=
*=
/=
%=
注意:
A:+=运算等价于 左边 = (左边数据类型)(左边+右边)
3,比較运算符:
==:
!=:
<
>
<=
>=:
instanceof:检查是否是类的对象
注意:
A:比較运算符的结果都是boolean型。结果是true或false。
B:注意==和=的差别。
4。逻辑运算符:
&:AND与 一假则假
|:OR或 一真则真
^:异或 同样则false,不同则true
!:非 非真即假。非假即真
&&:AND短路 有假不再继续 ,则为假
||:OR短路 有真不再继续, 则 为真
注意:A:&与&&。|与||终于结果同样
B:&&和||效率比&和|高。开发中用&&和||。
5,位运算符:
<<:左移 把数据往左移动右边指定的位数,移出的位置用0补齐,相当于原数乘以2的移动位数次幂
>>:右移 把数据往右移动右边指定的位数。移出的位置用最高位数值补齐,相当于除以2的移动位数次幂。
>>>:无符号右移(连同符号一起) 把数据往右移动右边指定的位数,移出的位置用0补齐(结果没有负数),相当于除以2的移动位数次幂。
&:与运算 有0则0
|:或运算 有1则1
^:异或运算 同样则0。不同则1 , 对同一个数异或偶数次,该数据本身不变。
~:反码 按位取反。的补码,在运算出原码即为结果
注意:
A:&,| 两边假设是boolean类型则是逻辑运算符,假设是数值则是位运算符。
面试题:a:用最有效率的方式计算出2乘以8。 答案:2<<3
b:将两个数值交换,int a = 10;int b = 20
答案:方式一(面试用):a = a^b;b = a^b ; a = a ^ b;
方式二: a=a+b; b=a-b; a = a-b;
方式三: a=(a+b)-(b=a);
c:比較两个数是否相等 答案:boolean flag =(x==y)?true:false;
方式二:boolean flag =(x==y);
6。三元运算符(条件运算符):
格式:(比較表达式)?值1:值2。
比較表达式结果是boolean类型。
运行顺序:看比較表达式的值是true还是false:假设是true,就把值1作为结果;假设是false,就把值2作为结果。