转换原则
-
不同类型的数据运算时需要转化成统一类型才能运算。
-
高类型转换至低类型时,需要强制转换;
低类型转换至高类型时,直接自动转换。
-
不能对boolean类型转换
-
转换过程中存在溢出问题,或者精度问题。
如下例所示:
public class Typeconversion {
public static void main(String[] args) {
int a = 128;
byte b = (byte)a;//存在值溢出问题
System.out.println(a);
System.out.println(b);
System.out.println("---------------------------------");
//------------------------------------------------------
System.out.println((int)23.7);
System.out.println((int)45.78f);
System.out.println("---------------------------------");
//------------------------------------------------------
char c1 = 'a';
int c2 = c1 + 1;
System.out.println((int)c1);
System.out.println((char)c2);
System.out.println("---------------------------------");
}
}
结果如下:
溢出问题扩展
- 当数值溢出时,数值将会随机取数。
- 当数值溢出时,溢出数值转换类型任然溢出(因为已经运算完成)。
如下例所示
public class Typeconversion{
public static void main {
int money = 10_0000_0000;
int years = 20;
int total1 = money * years;
long total2 = money * years;
System.out.println(total1);
System.out.println(total2);
System.out.println("---------------------------------");
long total3 = money * (long) years;
System.out.println(total3);
System.out.println("---------------------------------");
}
}
结果如下:
(https://www.kuangstudy.com/)