一.赋值运算符 :
1.基础赋值运算符 :
= 是唯一一个自右向左运算的符号
2.扩展赋值运算符 : (基础赋值运算符+算数运算符)
+= ==> a+=2; ==> a=a+2;
-= ==> a-=2; ==> a=a-2;
*= ==> a*=2; ==> a=a*2;
/= ==> a/=2; ==> a=a/2;
%= ==> a%=2; ==> a=a%2;
优点 :
1.自动做强制类型转换
2.提高执行效率
推荐使用扩展赋值运算符
在编译期间,满足条件的代码会自动优化成为扩展赋值运算符
二.比较|关系运算符 :
1. < > <= >=
操作数只能为数值型的操作数 byte short int long float double char
2. == !=
操作数可以为基本数据类型,或者引用数据类型
注意 : 比较运算符的运算结果为boolean结果
三.逻辑运算符 :
操作数都为值为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
七.位移运算符
<< 左移运算符
将第一个操作数转为二进制,向左移动第二个操作数的位数,空位补0,最终的二进制的结果转为十进制
规律 : a<<b ==> a*2^b;
>> 右移运算符
将第一个操作数转为二进制,向右移动第二个操作数的位数,移出线的位数忽略,剩余的二进制数据转为十进制
规律 : a>>b ==> a/2^b;
八.注意
运算符优先级 :
单目算数位关系,逻辑三目后赋值
&&优先级高于||,先执行&&,后执行||
条件运算符具有自右向左的结合性