运算符:对常亮或者变量进行操作的符号
表达式:用运算符把表达式常亮或者变量连接起来符合Java语法的式子可称为表代式,不同运算符连接的表达式体现的是不同类型的表达式
分类
1.算术运算符
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
注意:/于%区别,两个数据做除法,/取结果的商,%取结果的余数。整数操作只能得到整数,想要得到小数,必须有浮点数参与运算
一般字符的在计算机底层的对应数值
‘A’-----65 A-Z是连续的
‘a’------97 a-z是连续的
‘0’--------48 0-9是连续的
在算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升的规则:byte类型,short、类型和char类型将被提示到int类型
整个表达式的类型自动提示到表达式中最高等级操作数同样的类型
等级顺序:byte、short、char-------int--------long---------float-------double
字符串的“+”操作
当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是运算符
例子:‘Hello’+8888 ------------Hello8888
在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算符。当连接进行“+”操作时,从左到右执行
例子:2+299+“时间”----------301时间
2.赋值运算符
符号 | 作用 | 说明 |
= | 赋值 | a=10;将10赋值给变量a |
+= | 加后赋值 | a+=b;将a+b的值赋值给a |
-= | 减后赋值 | a-=b;将a-b的值赋值给a |
*= | 乘后赋值 | a*=b;将a*b的值赋值给a |
/= | 除后赋值 | a/=b;将a/b的商赋值给a |
%= | 取余后赋值 | a%=b;将a/b的余数赋值给a |
注意:扩展的赋值运算符隐含了强制类型转换
3.自增自减运算符
符号 | 作用 | 说明 |
++ | 自增 | 变量的值加1 |
-- | 自减 | 变量的值减1 |
注意
- ++和--既可以放在变量的后面,也可以放在变量的前面
- 单独使用的时候,++和--无论是放在变量的前面还是后面的结果都是一样的
- 参与操作的时候,如果放在变量的后面,先拿变量参与操作,后拿变量++或者--;如果放在变量的前面,先拿变量++或者--,后拿变量参与操作
4.关系运算符
符号 | 说明 |
== | 等于 |
!= | 不等于 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
注意:关系运算符的结果都是boolean类型,要么是true,要么是false
5.逻辑运算符
符号 | 作用 | 说明 |
& | 逻辑与 | a&b,a&b都是true,结果为true,否则为false |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true |
^ | 逻辑或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果刚好相反 |
逻辑运算符是用来连接关系表达式的运算符,也可以直接连接布尔类型的常亮或者变量
6.短路运算符
符号 | 作用 | 说明 |
&& | 短路与 | 作用与&相同,但有短路效果 |
|| | 短路或 | 作用与|相同,但有短路效果 |
注意:
- 逻辑与&,无论左边真假,右边都要执行;短路与&&,如果左边是真,右边执行,如果左边为假,右边不执行
- 逻辑或|,左边无论真假,右边都要执行;短路或||,如果左边是假,右边执行,如果左边为真,右边不执行
最常用的逻辑运算符:&& || !
6.三元运算符
格式:关系表达式?表达式1:表达式2
例子: a>b ? a : b;
计算规则:
- 首先计算关系表达式的值
- 如果值为true,表达式1的值就算运算结果
- 如果为false,表达式2的值就算运算结果