【Java语言】— 类型转换

166 阅读1分钟

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