Java元素-运算符
码农洞见 人气:01 前言
运算符就是在用变量或常量进行运算时,经常需要用到的运算符,Java 提供了丰富的运算符,可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。
2 算术运算符
2.1 四则运算
算术运算符的用途类似一般数学运算中的加(+)、减(-)、乘(×)和除(/)四则运算,是经常使用的数学运算符。这些算术运算符在Java语言中的用法及功能与它们在传统的数学中的用法及功能相同。四则运算符和数学上的功能一模一样。而求余数运算符“%”用于计算两数相除后的余数,这个运算要求参与运算的两个操作数都必须是整数类型。
public static void main(String[] args) { int a = 13+5; int b = 19-2; int c = 3*5; int d = 20/2; System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); System.out.println("d="+d); }
输出结果:
a=18
b=17
c=15
d=10
2.2 字符串运算符
不过,我们要注意的是加法运算符,在Java
中,它除了可以执行数值加的运算,还具有“字符串串接”的功能。
public static void main(String[] args) { int x = 6; int y = 9; String z = "xy"; System.out.println(z + x + y); }
输出结果:
xy69
2.3 一元运算符
对于很多表达式而言,运算符前后都会有操作数。但有一类操作符比较特别,它只需要一个操作数。这类运算符称为一元运算符。常见的一元运算符有:+(正号)、 -(负号)、++(自增)、(–)自减
一元减号可以得到数据的负值。一元加号的作用相反,不过它唯一能影响的就是把较小的数值类型自动转换为 int
类型。
public static void main(String[] args) { int x = +5; int y = -3; x++; y--; }
输出结果:
x=6
y=-4
3 关系运算符
关系运算符会通过产生一个布尔(boolean
)结果来表示操作数之间的关系。如果关系为真,则结果为 true,如果关系为假,则结果为 false
。常见的关系运算符有:==(等于)、!=(不等于)<(小于)、>(大于)、<=(小于等于)和>=(大于等于)
public static void main(String[] args) { int a = 10; int b = 11; boolean result = a == b; System.out.println(result); }
输出结果:
false
4 逻辑运算符
每个逻辑运算符根据参数的逻辑关系生成布尔值 true 或 false。常见的逻辑运算符有3个,即与(&&)、或(||)、非(!)
public static void main(String[] args) { boolean a = true; int b = 0; boolean result = a || b++>0; System.out.println(result); }
输出结果:
true
5 位运算符
位运算符允许我们操作一个整型数字中的单个二进制位。位运算符会对两个整数对应的位执行布尔代数,从而产生结果。位运算符有&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)。
左移运算符(<<)规则
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:需要移位的数字 << 移位的次数。例如: 3 << 2,则是将数字3左移2位
计算过程:首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。
右移运算符(>>)规则:
按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
语法格式:需要移位的数字 >> 移位的次数。例如11 >> 2,则是将数字11右移2位
计算过程:
11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。
6 码农洞见
6.1 运算符思维导图
6.2 运算符优先级
运算符的优先级决定了存在多个运算符时一个表达式各部分的运算顺序。Java 对运算顺序作出了特别的规定。其中,最简单的规则就是乘法和除法在加法和减法之前完成。程序员经常都会忘记其他优先级规则,所以应该用括号明确规定运算顺序。运算符的优先顺序:
- 分隔符:
[] () ; ,
- 从右到左结合:
++ – + - ~ !
- 从左到右结合:
* / %
- 从左到右结合:
+ -
- 从左到右结合:
<< >> >>>
- 从左到右结合:
< > <= >=
- 从左到右结合:
== !=
- 从左到右结合:
&
- 从左到右结合:
^
- 从左到右结合:
|
- 从左到右结合:
&&
- 从左到右结合:
||
- 从右到左结合:
?:
- 从右到左结合:
= *= /= %= += -= <<= >>= >>>= &= ^= |=
同样优先级的运算符是从左到右计算还是从右到左计算称为运算符的结合性。
加载全部内容