前言
常用运算符:
概念:运算符就是告诉程序执行特定的运算符操作符号。java中提供了6类运算符:
赋值运算、算术运算、关系运算、逻辑运算、位运算、条件运算
1.赋值运算
赋值运算符号“=”用于给变量指定变量的值,并可以和算术运算符结合起来,组成复合赋值运算符。复合赋值运算符:“+=”、“-=”、“*=”、“/=”、“%=”
实例:
2.算术运算
算术运算符包括:“+”,“-”,“*”,“/”,“%”、“++”、“–”
其中:++表示自增运算
--表示自减运算
i++
++i
注意:
比较:相同点都进行了i+1,操作:i++先赋值表达式,再进行自增运算;++i:先进行了i+i运算,再进行了表达式运算
同理可得i–和–i的相同点和不同点。
对于除法运算,如果两个操作数都是整数,结果也是整数,会舍去小数部分,如果两个数,有一个是浮点数,将会进行自动类型转换,结果也是浮点数,保留小数部分
对于取模运算符,如果两个操作数均是整数,结果也是整数,如果两个操作数有一个浮点数结果也是浮点数,保留小数部分
3.关系运算符
关系运算符有时又叫比较运算符,用于比较两个变量或常量的大小,运行的结果是布尔值:true
或false;
Java中有6个关系运算符:“==”、“!=” “>”,“<”,“>=”;“<=”
注意:
1."="表示是赋值运算符;”==“表示等于运算符
2.”>“;“<”,“>=”;“<=”;只支持数值类型的比较
3.“==”、“!=”支持所有数据类型的比较,包括数值类型、布尔类型、引用类型
4.关系运算符,运算后的结果是一个布尔值
5.“>”,“<”,“>=”;“<=”;运算符的优先级高于”==“、”!=“
4.逻辑运算符
逻辑运算符用于对布尔类型操作数进行运算,其结果还是布尔值,逻辑运算如下
运算符 | 含义 | 运算规则 |
---|---|---|
& | 逻辑与 | 两个操作数都是true,结果才是true;不论左边取值,右边的表达式都会进行运算 |
| | 逻辑或 | 两个操作数一个是true,结果也是true;不论左边取值,右边的表达式都会进行运算 |
^ | 逻辑异或 | 两个操作数相同,结果为false;两个操作数不同,结果为true |
! | 逻辑非 | 操作数为true,结果为false;操作数为false,结果为true |
&& | 短路与 | 运算规则同“&”,不同在于如果左边为fasle,右边表达式不会进行运算 |
|| | 短路或 | 运算规则同“|”,不同在于如果运算符左边的值为true,右边的表达式不会进行运算 |
注意:
1.操作数类型只能是布尔类型,操作的结果也是布尔类型
2.优先级别:”!“>“&”>“^”>“|”>“&&”>“||”。
3.&与&&的区别:当“&&”的左侧为fasle时,将不会计算其右侧的表达式,即左边false则fasle;无论任何情况,“&”两侧的表达式都会参与计算
4.逻辑或和短路或:的区别和逻辑与与短路与类似
5.位运算
运算符 | 含义 | 运算规则 |
---|---|---|
& | 按位与 | 两个操作数都是1的时候,结果才是1 |
| | 按位或 | 两个操作数一个是1,结果就是1 |
^ | 按位异或 | 两个操作数相同,结果为0,两个操作数不同,结果为1 |
~ | 取反/按位非 | 操作数为1,结果为0;操作数为0,结果·为1 |
<< | 左移 | 右侧空位补0 |
>> | 右移 | 左侧空位补最高位 |
>>> | 无符号右移 | 左侧空位补0 |
示例:
1.计算5&6
5:0101
6:0110
结果:0100=4
2.计算5|6
结果:0111=7
3.计算6<<2的结果
实现步骤:
1.把6转换为二进制数
2.让所有的二进制位向左移动两位,最高位移除,空出的低位一律补0
3.最终得到的运算的二进制数转换为10进制的是24
注意:
1.位运算符对操作数,以二进制单位为单位进行运算
2.位运算符操作数是整数类型:int、short、long、byte、char
3.位运算符运算的结果也是整数:包括int、long
4.如果操作数,是char、byte、short位运算前其值先自动晋升int,所以结果也是int
6.条件运算(三目运算符)
是java中唯一需要3个操作数的运算符,又叫三元运算或三目运算
条件运算符的语法格式:
条件? 表达式1:表达式2
运算过程:
1.先对条件进行判断,结果为true,则返回表示式1的值
2.如果结果为false,则返回表达式2的值
1.在表达式“min = 5<7 ? 5 : 7”中,首先判断5<7的值,结果为true。则取表达式1的值5,赋给变量min=5
2.在表达式“max = 10<7 ? 10 : 7”中,首先判断10<7的值,结果为false,则取表达式2的值,赋给变量max=7
运算符的优先级:
1.运算符的最低的级别是赋值运算,其次条件运算符
单目运算包括:”!“、”~“、”++“、”–“优先级最高的
可以通过”()“来控制表达式的运算顺序,”()“优先级别最高
总体而言:优先顺序为算术运算符>关系运算符>逻辑运算符