自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量。
自动类型转换的底层原理
byte a = 12;
int b = a;
System.out.println(b);
a为 00001100(8位)
b为 00000000 00000000 00000000 00001100 (32位)
int age = 21;
double db = age; //自动类型转换
System.out.println(db);
自动类型转换的其他形式
byte —> short —> int —> long —> float —> double
char —> int
int age = 21;
double db = age; //自动类型转换
System.out.println(db);
表达式的自动类型转换
-
在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
byte、short、char —> int —> long —> float —> double
注意事项
-
表达式的最终结果类型由表达式中的最高类型决定
-
在表达式中,byte、short、char是直接转换成int类型参与运算的
-
byte a = 10;
int b = 20;
double c = 1.0;
double rs = a + b + c; //此处rs用比double类型范围小的会报错
double rs2 = a + b - 2.3;
byte i = 100;
byte j = 120;
int k = i + j; //此处k不能用int以下的,运算时i和j转换为了int