运算符 用来指明对于操作数的运算方式
按照操作数的数目来进行分类
单目(a++)
双目(a + b)
三目( (a>b)?x:y) )
按照运算符的功能来分类
算术运算符(+ - * / %(取余,取模) ++(自增) --(自减)
int x = 1;
x = x + 1; //x空间内的值 自己增加了一个
x++; //x空间内的值 自增一个
++x; //对于x空间内的值来讲 都是一致的 最终结果都自增了一个
int x = 1;
y = x ++;//将x变量空间的内容先取出 常量区取出1 进行计算 再次存回X空间
x在想要做值交换的时候 会产生一个临时的副本文件(备份)
++在变量前 先自增后备份 ++在变量后 先备份后自增
会将副本空间内的值赋给别人
-----> x=2 y=1
int a = 1;
a = a++;
------->a=1
int a = 1;
for(int i = 1;i<1000;i++){
a=a++;
}
结果:a = 1
笔试快车
int m = 1;
int n = 2;
int sum = m+++++n-n-----m+n-----m
m == ? n==? sum==?
结果:m = 0 n = 1 sum = 2
赋值运算
= 赋值符号 将=右边的内容存入左边的变量空间内
+=(a+=b--->a=a+b) -= *= /= %=
关系运算(比较)
> >= < <= != ==
最终的结果是布尔型(true false)
逻辑运算:返回结果类型为Boolean
&(逻辑与)
|(逻辑或)
^(逻辑异或,前后两个结果不一致返回true)
!(逻辑非)
&&(短路与)
-->短路与什么情况下会发生短路? 当前面的值为false的时候会发生短路
-->短路到底短路的是什么? 短路的是&&之后所有的计算过程
-->如果发生了短路的情况 性能比&稍微好一点
-->&和&&,从执行的最终结果看没有任何区别
-->短路不一定提高了性能 只有当前面为false的时候才会发生短路,才能提高性能
||(短路或)!(和短路与相似)
位bit运算
&按位与
|按位或
^按位异或
~按位取反
<<按位左位移
>>按位右位移
3&5 ==1
1.将3和5转化成二进制表示形式
2.竖着按照对应位置进行 & | ^计算
3.将计算后的二进制结果转化为十进制