类型转换
- 由于Java是强类型语言,所以在进行某些运算的时候,需要用到类型转换
低------------------------------------------->高
byte,short,char->int->long->float->double
- 运算中,不同类型的数据先转换为同一类型,再进行运算
- 在类型转换中,如果从高到低转换的高超过低的最大内存,则会出现内存溢出的情况,这个时候就需要用到强制转换
- 不能对布尔值类型转换
- 不能把对象类型转换为不相干的类型
- 转换的时候可能存在内存溢出或者精度问题
强制类型转换
public class Demo{
public static void main(String[] args){
int i = 111;
byte b = (byte)i;
}
}
public class Demo{
public static void main(String[] args){
int money = 1000000000;
int years = 20;
int total = money*years;
//结果为-1474836480,数据溢出
long total1 = money*years;
//结果仍然溢出
long total2 = money*((long)years);
//结果正常
}
}
自动类型转换