Java中的运算符有算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,类型运算符。
1.算术运算符:
+ - */ 加减乘除
% 求余
++ -- 自加 自减(i++表示先进行计算再将i的值+1;++i表示先将i的值+1再进行计算)
2.赋值运算符
用 = 表示赋值运算符
3.位运算符(操作的是二进制数,结果为boolean类型数)
&按位与
| 按位或
~按位非
^按位异或
<<左移运算符,左移后右边空出来的位以0填充。
>>右移运算符,右移后左边空出的以符号位填充。
>>>无符号右移,右移后左边空出的以0填充。
(移位操作时,没有发生数据时,左移N位相当于乘以2的N次方,右移相当于除以N的2次方)进行位移操作时不会改变操作数本身,只是得到一个新的运算结果,而原操作数本身不会改变。
4. 逻辑运算符(操作的boolean类型值)
&&:与
&:作用同&&,但不短路
&与&&的区别:&总会计算前后两个操作数,而&&先计算左边操作数,如果左边操作数为false则不考虑第二个操作数,直接返回结果为false
||:或 有一个为true就返回true,否则返回false
|:不短路,作用同||
!:非
^:异或
5.比较运算符:
>大于
<小于
>=大于等于
<=小于等于
==等于
!=不等于
// 将两个数互换,不添加第三个数
int m = 10;
int n = 8;
m = m^n; /* m= m^n n=n 按位操作都是在直接操作在计算机底层的二进制数上的*/
n = m^n; // m= m^n n=m
m = m^n; /* m= n n = m 对一个数进行两次相同的按位操作 变成原数 */