1.类型转换
(1)自动类型转换
- 类型范围小的变量,可以直接赋值给类型范围大的变量。
①自动类型转换的底层原理
②自动类型转换的其他形式
(2)表达式的自动类型转换
- 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型在运算。
注意事项
- 表达式的最终结果类型由表达式中的最高类型决定。
- 在表达式中,byte、short、char是直接转换成int类型参与运算的。
(3)强制类型转换
①场景
int a = 功能1();
功能2(byte b);
例如:
int a = 20;
byte b = a; //报错
问题原因:
- 类型范围大的数据或变量,不能直接赋值给类型范围小的变量,会报错。
②强制类型转换
可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
数据类型 变量2 = (数据类型)变量1、数据
int a = 20;
byte b = (byte)a;
③强制类型转换底层原理
int a = 20;
byte b = (byte)a;
System.out.println(b); //20
int i = 1500;
byte j = (byte)i;
System.out.println(j); //-36
④ 注意事项
- 强制类型转换可能造成数据(丢失)溢出。
- 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
double score = 99.5;
int it = (int) score;
System.out.println(it);
输出结果;99