2023.7.7运算符
1.比较|关系运算符 :
< > <= >=
操作数只能为数值型的操作数 byte short int long float double char
== !=
操作数可以为基本数据类型,或者引用数据类型
注意 : 比较运算符的运算结果为boolean结果
2.逻辑运算符 :
操作数都为值为boolean类型的表达式
& : 两边都为true,结果为true,一个为false就是false
| : 一个为true就是true,两个都是false才是false
! : 取反
^ : 相同为false,不同为true
短路运算符 : 如果第一个操作数的结果就能够决定最终的结果,第二个操作数不再执行
&& : 两边都为true,结果为true,一个为false就是false
|| : 一个为true就是true,两个都是false才是false
建议 :
使用短路运算符代替&和|
条件运算符 :
条件表达式? 值1 : 值2;
执行流程 :
1.计算条件表达式(要求为值为boolean类型的表达式),得到一个boolean结果
2.如果结果为true,取值1
3.如果结果为false,取值2
位运算符 :了解
将操作数转为二进制,然后对二进制的数据进行指定规则的运算,最终将结果转为十进制
& : 一个为0就是0,两个都为1才是1
| : 一个为1就是1,两个都为0才是0
^ : 相同为0,不同为1
3.位移运算符
<< 左移运算符
将第一个操作数转为二进制,向左移动第二个操作数的位数,空位补0,最终的二进制的结果转为十进制
规律 : a<<b ==> a*2^b;
>> 右移运算符
将第一个操作数转为二进制,向右移动第二个操作数的位数,移出线的位数忽略,剩余的二进制数据转为十进制
规律 : a>>b ==> a/2^b;
运算符优先级 :
单目算数位关系,逻辑三目后赋值
赋值运算符 :
基础赋值运算符 :
= 是唯一一个自右向左运算的符号
4.扩展赋值运算符 : (基础赋值运算符+算数运算符)
+= ==> a+=2; ==> a=a+2;
-=
*=
/=
%=
优点 :
1.自动做强制类型转换
2.提高执行效率
推荐使用扩展赋值运算符
在编译期间,满足条件的代码会自动优化成为扩展赋值运算符