只要数值未超过某类型的范围,即可默认转换,例如:
long a = 123; float b = a; //编译通过 int c = -1; char d= c; //char类型数值范文0-65535,默认转换失败
还有一种强制转换:
int c = -100; char d= (char)c; //强制转换,但值可能超过char的范围,转换后的值无意义
数据运算时,会发生数据类型自动提升的现象:
int a = 3; long b = 10; int c = a+b; //计算式int + long 自动转为long , 将结果复制给int类型的c,会有异常 System.out.println(c);
数据溢出时,可以对数据进行类型提升。
时间: 2024-11-25 17:43:21