day04类型转换+运算符
day04类型转换+运算符
一、类型转换
-
数据类型由小到大的排序
byte short int(char) long float double
-
自动类型转换/隐式类型转换:
小类型转大类型
-
强调类型转换
- 大类型转换成小类型
- 语法:(要转换成的类型)变量
- 强调类型转换需要考虑范围问题,可能会存在溢出
- double类型转换成int类型,存在精度丢失问题
-
两点规则
- 整数直接量可以赋值给byte short char,但是不能超出范围
- byte short char型数据参与运算时,系统一律将其转换成int类型。
二、运算符
-
算数运算符
-
+,-,*,/,%
1. byte b1 = 3; 2. byte b2 = 4; 3. byte b3 = b1 + b2; 4. byte b4 = 3 + 4; 问:第三行代码和第四行代码是否会报错?为什么? byte b3 = b1 + b2;编译错误,因为byte类型的数据参与运算,会自动转换为int类型,所以计算的结果是int类型。 byte b4 = 3 + 4;不会报错,在JDK1.7做出了优化,在编译过程中会直接计算3+4=7,然后将7赋值给b4 如果计算结果不超过范文,不报错,正常赋值,如果超范围,编译会报错 -
/除法
注意:
-
除数不能为0,如果除数为0,被除数为整数,程序编译没有问题,但是运行会抛出异常,程序就会崩溃而停止导致退出。
-
正浮点数/0:Infinity(无穷大)
负浮点数/0:-Infinity(无穷小)
-
-
++ --自增,自减
- 如果变量单独使用++,--,++--在变量之前和在变量之后没有区别,都是在变量原基础上加/减1
- 如果++--参与到运算中,则
- 如果++ --在变量之后,先参与运算,再++ --
- 如果++ --在变量之前,先++ --,再进行运算
-
-
关系运算符(比较运算符)
-
< , > , >= , <= , ==, !=
关系运算符的结果为boolean值,关系成立则返回true,关系不成立则返回false
-
-
逻辑运算符
&&(与) ||(或) !(非) ^(异或)
- 逻辑运算时建立在关系运算的基础之上的
- 逻辑运算符的结果也是boolean类型
- 整型数据异或两次相同的数据得到的结果依然是它本身
浙公网安备 33010602011771号