java运算符
运算符优先级(下图转自百度百科)
1:基本运算符
1.1:四则运算
(int)计算数A | (int)计算数B | 运算符 | 运算结果 |
12 | 3 | + | 15 |
12 | 3 | - | 9 |
12 | 3 | * | 36 |
12 | 3 | / | 4 |
1.2:赋值运算
符号:=
例如:int a=1;
int b=a;
这里的a=1跟b=a中的“=”都是赋值运算。
1.3:自增自减
符号:++(自增)、--(自减)
例如:
int a=1;
int b=2;
a++;
b--;
最后a=2,b=1.
注意点:
运算不要复杂,尽量使用括号代替优先级的选择。
例如:int a=1;
int b=2;
int c=b++ - a-- * ++a / --b + ++b;
虽然计算机很容易算出来结果为5,但是这种写法很容易出错,而且给阅读代码的人带来很大的困难。
2:三目运算符(重要)
作用:三目运算符最大的作用是用来简化一些判断语句的书写。
例如:将a,b中较大的一个数赋给c;
解法A:
int a = 5;
int b = 6;
int c;
if(a>b){
c=a;
}else{
c=b;
}
解法B:
int a = 5;
int b = 6;
int c = a>b?a:b;
相比较之下:运用三目运算可以减一大段判断语句的书写,提高程序的简洁性。
解析:数据类型 变量 = 布尔表达式?布尔表达式正确时返回的结果:布尔表达式错误时返回的结果;
3:逻辑运算符
种类:简单与“&”,简单或“|”,短路与“&&”,短路或“||”
if(A&B){return true;} else{return false;} A,B都进行判断,然后返回结果
if(A|B){return true;} {return false;} A,B都进行判断,然后返回结果
if(A&&B){return true;} {return false;} 当A正确时再判断B,然后返回结果,当A错误时不再判断B,直接返回结果
if(A||B){return true;}{return false;} 当A错误时再判断B,然后返回结果,当A正确时不再判断B,直接返回结果
总结:在我们开发过程中尽量使用“&&”和“||”。
4:位运算符
位运算符主要针对二进制,它分为四种:“与”、“非”、“或”、“异或”。有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。
简单举个例子:2&3=3 2|3=2
2 二进制 00000000 00000000 00000000 00000010
3 二进制 00000000 00000000 00000000 00000011
&结果 00000000 00000000 00000000 00000011
|结果 00000000 00000000 00000000 00000010
注意:基本上这些我们只需了解,底层的实现在我们日常开发过程中不用太多考虑,只需要注意的是“&”,“|”能进行位操作,而“&&”,“||”不能。