概述:
Java中内置的表示特定运算规则的符号
分类:
算术运算符
赋值运算符
关系运算符
逻辑运算符
三目运算符
位运算符--实际开发中用的不多,了解即可
算术运算符
+ - * / %
++ --
+(求和) -(求差) *(求积)
/(求商)
注意:
1、结果的数据类型
两个元素的数据类型一致,结果的数据类型和元素的保持一致;
两个元素的数据类型不一致,结果的数据类型和其中大的类型保持一致;
其中byte short char类型参与运算时会自动提升为int类型
面试题:
byte b1 = 3;
byte b2 = 4;
byte b = b1+b2;//编译会报错
2、 除法:当int/int类型时,结果为int类型,直接舍弃小数部分;
商取整的效果
3、 除法:当整数/0 ,除数为0,编译不报错 运行报错(运行时异常)
Exception in thread "main" java.lang.ArithmeticException: / by zero
at OperatorDemo1.main(OperatorDemo1.java:66)
正浮点数/0:Infinity(无穷大)
负浮点数/0:-Infinity(无穷小)
0.0/0:NaN(Not a Number)非数字
4、% 取余 模余
整除的概念时使用该运算符
5、++ 自增运算符
单目运算符,对一个元素作运算
在++中间不能有空格和其他字符
只能作用变量,不能用于字面值或者常量
可以在变量前边也可以在变量的后边:
单独使用的情况下,前后没有区别;
如果参与运算时,
++在前,则会先让变量的值+1,再参与运算
变量在前,则先使用变量原来的值参与运算,再让变量的值+1
6、-- 自减运算符
单目运算符,对一个元素作运算
在--中间不能有空格和其他字符
只能作用变量,不能用于字面值或者常量
可以在变量前边也可以在变量的后边:
单独使用的情况下,前后没有区别;
如果参与运算时,
--在前,则会先让变量的值-1,再参与运算
变量在前,则先使用变量原来的值参与运算,再让变量的值-1
7、对于++ --底层实现的理解
num++;等价于num = (type)(num +1);
赋值运算符
=:赋值,不能表示相等
赋值运算符的优先级是最低的
扩展的赋值运算符
+= -= *= /= %=
注意:
左侧必须为变量,不能为具体的数据值 也不能为常量
x+=y
先使用左侧变量的值和右侧进行求和运算,将结果赋值给左侧变量
关系运算符
比较运算符,特点:结果一定为boolean类型 true false
> < >= <=
== !=
逻辑运算符
特点:针对布尔型来做运算符,运算结果也是boolean类型 true false
& | ! ^
&& ||
&:与 且 AND
true&true=true
true&false=false
false&true=false
false&false=false
总结:
两个元素都为true,结果为true;一旦出现false 结果就为false;
|: 或 OR
true|true=true
true|false=true
false|true=true
false|false=false
总结:
两个元素都为false,结果为false;一旦出现true,结果就为true;
!:非 取反
单目运算符
!true = false
!false = true
^:异或
true^true=false
true^false=true
false^true=true
false^false=false
总结:
两个元素相同则结果为false;两个元素不同则结果为true;
案例:
男女搭配干活不累(一男一女构成一个小组)
&&:双与 短路与
如果&&左边的值为false,则右边不再执行,结果必然false
除此之外& &&效果一致
||:双或 短路或
如果||左边的值为true,则右边不再执行,结果必然为true
除此之外| ||效果一致
&& ||优点:
可以提高程序的执行效率