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作为结果。
原文地址:http://blog.csdn.net/u013033038/article/details/44337181