运算符
1、算术运算符
+ - * %
+也可用作连接符
System.out.println("5+5="+5+5); //输出5+5=55
System.out.println("5+5="+(5+5)); //输出5+5=10
----------------------------------------------------------------
%: -5%2=-1 5%-2=1
-----------------------------
自增,自减运算符
a++: a的值先去参与别的运算,完成后再进行自增运算
a的值预存,a去自增,用预存的a去其他运算。
++a: 直接自增
int i=3;
i=i++;
System.out.println("i="+i);//输出i=3
------------------------------------------------
2、赋值运算
= 、+= 、-=、*=、/=、%=
byte b=3;
b+=4;//一次运算,不会报错 赋值运算+转换运算 (byte)(b+4) 底层已经做了这个转换
b=b+4;//两次运算 报错,必须得自己强制转换
---------------------------------------------------------------------------------------------------------------
3、比较运算符
> < == !=
结果为Boolean
-----------------------------
4、逻辑运算符
&、&& 逻辑与:双与左边一为假,右边不用算;单与两边都的算
| 、|| 逻辑或:双或左边一为真,右边不用算;单或两边都的算
异或 ^ : 1^0 =1 1^1=0 0^0=0
----------------------------------------------------------------------------------
5、位运算符
& 按位与 可以取二进制中的部分
| 按位或 可以将有效位保留
^ 异或 一个数异或同一个数两次还是本身 6^3^3=6
异或 可以用于加密 数据变了,数据量没变(不会产生进位)
<< 左移 3<<2 = 3* 22
>> 右移 6>>2=6/4=1
右移后出现的高位 原来的高位是什么就用什么补这个空位
>>> 无符号右移 高位用0补
--------------------------------------------------------------------------------
6、三元运算符
int a=3,b=6;
int max=a>b?a:b;
-------------------------------------------------------------------------------
补充一个小列子:
对两个整数变量值a,b进行交换
1) 通过引入第三方变量 开发中常用的方法
int c;
c=a;
a=b;
b=c;
2) a=a+b;
b=a-b;
a=a-b;
如果两个整数过大,会溢出 会强制转换 ,数据会发生改变
3) a=a^b;
b=a^b;
a=a^b;