运算符
运算符就是参与运算的符号。Java提供的运算符有很多种,可以分为下面几种:
-
基本算术运算符
-
自增自减运算符
-
赋值运算符
-
关系运算符
-
逻辑运算符
-
三元运算符(条件运算符)
一、算数运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 参考小学一年级内容 |
- | 减 | 参考小学一年级内容 |
* | 乘 | 参考小学二年级内容,与“x”相同 |
/ | 除 | 与“÷”相同,注意:再java中两个整数相除结果还是整数 |
% | 取余 | 获取的是两个数据做除法的余数 |
需要注意的是: + 符号除了用于加法运算,还可以作为连接符。 + 符号与字符 串运算的时候是用作连接符的,其结果依然是一个字符串。
二、自增自减运算符
符号 | 作用 |
---|---|
自增:++ | 放在某个变量前面或者后面,对变量自身的值加1 |
自减: – | 放在某个变量前面或者后面,对变量自身的值减一 |
++=为先自增后赋值,=++为先赋值后自增。
需要注意的是,自增自减只能对变量进行操作,不能操作字面量。具体使用时也分为两种情况
- 单独使用:++或者–放在变量前面没有区别
- 混合使用:++或者–放在变量或者前面运算规则稍有不通过 ++ 在后 先赋值 再自 增 ++ 在前先自增再赋值
三、赋值运算符
符号 | 用法 | 作用 | 底层代码形式 |
---|---|---|---|
+= | a+=b | 加后赋值 | a = (a的类型)(a + b) |
-= | a-=b | 减后赋值 | a = (a的类型)(a - b) |
*= | a*=b | 乘后赋值 | a = (a的类型)(a * b) |
/= | a/=b | 除后赋值 | a = (a的类型)(a / b) |
%= | a%=b | 取余后赋值 | a = (a的类型)(a % b) |
+=,-=,%=这些运算,表示对左右两边的值进行运算后赋值给左边的值,在赋值的时候会进行强转,强转为左边的类型。
四、关系运算符
下图是每一种关系运算符的符号及作用,每一个关系运算符的结果都是boolean值(true、false):
符号 | 例子 | 作用 | 结果 |
---|---|---|---|
> | a > b | 判断a是否大于b | 成立返回true,不成立返回false |
>= | a >= b | 判断a是否大于等于b | 成立返回true,不成立返回false |
< | a < b | 判断a是否小于b | 成立返回true,不成立返回false |
<= | a <= b | 判断a是否小于等于b | 成立返回true,不成立返回false |
== | a == b | 判断a是否等于b | 成立返回true,不成立返回false |
!= | a != b | 判断a是否不等于b | 成立返回true,不成立返回false |
关系运算符在程序中常用于条件判断,根据条件判断的结果是true还是false,来决定 后续该执行哪些操作。
五、逻辑运算符
逻辑运算符是用来将多个条件放在一起运算,最终结果是true或者false
符号 | 称呼 | 例子 | 运算逻辑 |
---|---|---|---|
& | 逻辑与 | 2 > 1 & 3 <2 | 多个条件必须是true,结果才是true;有一个是false,结果就是false |
| | 逻辑或 | 2 > 1 | 3 >5 | 多个条件中主要有一个是true。结果就是true |
! | 逻辑非 | !(2 > 1) | 就是取反:你真我假,你假我真。 |
^ | 逻辑异或 | 2 > 1 ^ 3 >1 | 前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true |
&& | 短路与 | 2 > 10 &&3 > 2 | 判断结果与"&"一样,过程不同:左边为false,右边就不执行 |
|| | 短路或 | 2 > 1 || 3 <5 | 判断结果与" |
&&、||这两运算符为短路或和短路非,如果运算符左边成立则直接输出,不会对运算符后边的数再进行处理
六、位运算符
在计算机内部,数据以二进制位(0和1)的形式存储和处理。计算机通过将数据转换 为二进制形式,将其存储在内存中,并对其进行操作和计算。不同的数据类型在内存 中占据不同长度的二进制位,以便正确地表示和处理数据。
6.1、原码
原码是一种最简单的机器数表示法,其中最高位表示符号位,其余位表示该数的二进 制的绝对值。
6.2、反码
正数的反码与原码相同,而负数的反码是其原码除符号位外,按位取反的结果。
6.3、 补码
正数的补码等于其原码,而负数的补码等于其反码加1
运算符 | 含义 | 运算规则 |
---|---|---|
& | 按位与 | 两个操作数都是1,结果才是1。 |
| | 按位或 | 两个操作数任意一个是1,结果就是1。 |
^ | 按位异或 | 两个操作数相同,结果为0;两个操作数不同,结果为1 |
~ | 按位非 | 操作数为1,结果为0;操作数为0,结果为1。 |
<< | 左移 | 右侧空位补0。 |
>> | 右移 | 左侧空位补最高位,即符号位。 |
>>> | 无符号右移 | 左侧空位补0。 |
七、三元运算符
三元运算符的格式:
数据类型 变量名 = 关系表达式 ? 值1 : 值2;
三元运算的执行流程:
首先计算关系表达式的值,如果关系表达式的值为true,则返 回值1;如果关系表达式的值为false, 则返回值2;