- 为什么要进行类型转换
存在不同类型的变量赋值给其他类型的变量
自动类型转换
- 自动类型转换是什么样的?
类型范围小的变量,可以直接赋值给类型范围大的变量
表达式的自动类型转换
在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
byte、short、char→int→long→float→double
注意事项:
表达式的最终结构类型有表达式中的最高类型决定
表达式中、byte、short、char是直接转换成int类参与运算的。
面试题
//面试题中会问i+j是说明数据类型
byte i=10;
byte j=20;
byte k= i+j;//byte在表达式中是当int运算的,这里报错,表达式的最高类型是int
int k1= i+j;//应该这么些
强制类型转换
1.什么是强制类型转换?
可以强行将类型范围大的变量、数据复制给类型范围小的变量
数据类型 变量=(数据类型)变量、数据
强制类型转换的底层原理
注意事项
- 强制类型转换可能造成数据(丢失)溢出;
- 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
double score=99.5;
int it=(int)score;
System.out.println(it);//99,直接舍去小数部分,保留整数