运算符号、算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符、位运算符、条件运算符、运算符优先级

目录

一、算术运算符

二、赋值运算符

三、比较(关系)运算符

四、逻辑运算符

五、位运算符

六、条件运算符

七、运算符优先级


运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

运算符的分类:按照功能分为:算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、Lambda运算符。

按照操作数的个数分为:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符(三目运算符)。

一、算术运算符

二、赋值运算符

基本语法:符号为:=

①:当‘=’两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理

②:支持连续赋值

扩展赋值运算符:+=、-=、*=、/=、%=

三、比较(关系)运算符

注意:

①:比较运算符的结果都是boolean型,也就是结果要么是true,要么是false

②:>、<、>=、<=只适用于基本数据类型(除boolean类型之外)

③:==、!=适用于基本数据类型和引用数据类型

④:比较运算符“==”不能误写成“=”

四、逻辑运算符

基本语法:

逻辑运算符,操作的都是boolean类型的变量或者常量,而且运算的结果也是boolean类型的值。

运算符说明:

①:&与&&:表示“且”的关系,当符号左右两边布尔值都是true时,结果才能为true,否则,为false

②:|和||:表示“或”的关系,当符号两边的布尔值有一边为true时,结果为true。当两边都为false时,结果为false

③:!:表示“非”的关系,当变量布尔值为true时,结果为flase。当变量布尔值为false时,结果为true

④:^:当符号左右两边的布尔值不同时,结果为true。当两边布尔值相同时,结果为false。理解:异或,追求的是“异”!

注意:

①:逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3&x<6

②:区分“&”和“&&”:

相同点::如果符号左边是true,则二者都执行符号右边的操作

不同点:对于&而言,如果符号左边是false,则继续执行符号右边的操作;对于&&而言,如果符号左边是false,则不再继续执行符号右边的操作。

建议:开发中,推荐使用&&

③:区分“|”和“||”:

相同点:如果符号左边是false,则二者都执行符号右边的操作

不同点:对于|而言,如果符号左边是true,则继续执行符号右边的操作,对于||而言,如果符号左边是true,则不再继续执行符号右边的操作

建议:开发中,推荐使用||

五、位运算符

位运算符的运算过程都是基于二进制的补码运算

①左移:<<

运算规则:在一定范围内,数据每向左移动一位,相当于原数据*2。(正数、负数都适用)

注意:当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数)位。

②右移:>>

运算规则:在一定范围内,数据每向右移动一位,相当于原数据/2。(正数、负数都适用)

注意:如果不能整除,向下取整

③:无符号右移:>>>

运算规则:往右移动后,左边空出来的位直接补0。(正数、负数都适用)

④:按位与:&

运算规则:对应位都是1才为1,否则为0

⑤:按位或:|

运算规则:对应位只要有1即为1,否则为0

⑥:按位异或:^

运算规则:对应位一个为1一个为0,才为1,否则为0

⑦:按位取反:~

运算规则:对应位为1,则结果为0;对应位为0,则结果为1

六、条件运算符

基本语法:

条件运算符格式:

(条件表达式)?表达式1:表达式2

说明:条件表达式是boolean类型的结果,根据boolean的值选择表达式1或表达式2

与if-else的转换关系:

凡是可以使用条件运算符的地方,都可以改写为if-else结构。反之,不成立。

开发中,如果二者都可以使用,推荐使用条件运算符,因为其执行效率较高

七、运算符优先级

运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序

上一行中的运算符总是优于下一行的

实际开发时候的建议:

①不要过多依赖运算的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序

②不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成

猜你喜欢

转载自blog.csdn.net/Starinfo/article/details/135141734