JAVA基本运算符
1.算术运算符
Java中算术运算符用在算术表达式中,其作用和数学中的运算符相同。
算术运算符应注意以下问题:
①在使用算术运算时需要注意运算两侧类型:当两侧类型不统一时,运算结果和较大类型保持一致。
②如果对负数取模,可以把模数负号忽略不记,如:7%-2=1,但被模数是负数就另当别论。
③对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
④“+”除字符串相加功能外,还能把非字符串转换成字符串 。“+”运算符两侧的操作数中只要有一个String类型,一个是基本数据类型时,编译成class文件后,两个操作数就被连接成了一个新的String值。
2.赋值运算符
| 运算符 | 描述 |
|---|---|
| = | 赋值 |
| += | 加等 |
| -= | 减等 |
| *= | 乘等 |
| /= | 除等 |
| %= | 模等 |
(1)赋值号(=)的功能是将赋值号右侧的结果存储到左侧的变量空间中。
int a = 6 ; //将6存储到左侧a空间中
int b , c ;
b = c = a; // 将a空间中的值分别存放到b,c 空间中
(2)赋值号和算术运算符组合起来的混合运算符,它们即具有算术运算的特定,同时还具有 赋值运算的特定。
int a = 2;
a += 8; //相当于 a = a + 8;的运算,即把a空间中的值和8进行加法运算,把值重新存放到a空间中
3.关系运算符
| 运算符 | 描述 |
|---|---|
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| == | 等于 |
| != | 不等于 |
关系运算符的结果都是boolean型,也就是要么是true,要么是false;关系运算符“==”不能误写成“=”。
4.逻辑运算符
| 运算符 | 描述 |
|---|---|
| & | 按位与 |
| l | 按位或 |
| ^ | 异或 |
| ! | 非 |
| && | 短路与 |
| ll | 短路或 |
(1)按位与( & ) :两边都为true,结果是true,否则为false;
两边只要有一个false,结果必然是false。
(2)按位或( | ) :两边都为false,结果是false,否则为true;
两边只要有一个true,结果必然是true。
(3)异或( ^ ): 两边相同为false,两边不同为true。
(4)非( !):非真则假,非假则真。
(5)“ & ”和“ && ”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
(6)“ | ”和“ || ”的区别:单或时,左边无论真假,右边都进行运算;双或时,左边为真,右边不参与运算。
5.移位运算符
| 运算符 | 描述 |
|---|---|
| << | 左移 |
| >> | 右移 |
| & | 按位与 |
| l | 按位或 |
| ^ | 按位异或 |
| ~ | 按位取反 |
位运算:主要说的是二进制数位运算
(1)左移操作“<<”:将运算数的二进制码整体左移指定位数,左移之后的空使用“0”来补充,移出去的二进制数忽略不计。(<<:相当于给原数乘以2的倍数)
(2)右移操作“>>”:将运算数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充。移出去的二进制数忽略不计。若是正数使用“0”补充,若是负数使 用“1”补充;(>>:相当于给原数除以2的倍数)
(3)& 按位与运算原则:相同二进制数位上数值为1,结果为1,否则结果为0;
(4)| 按位或运算原则:相同二进制数位上数值为0,结果为0,否则结果为1;
(5)^ 按位异或运算原则:参与运算的两个数相应位相同则结果为0,异号则为1;
(6)~ 按位取反运算原则:二进制数位上0变1,1变0。
Java运算符的优先级: