数据类型的转换
由于Java属于强类型语言,所以在进行运算的时候需要用到类型转换,将不同类型转化为同一类型再进行预算
运算分为两种:
强制类型转换
自动类型转换
强制类型转换是指从高到底的转换
int i =128;
byte b = (byte)i;//byte最大值为127出现内存溢出
//将int转化为byte的这个过程叫做强制转换(类型)变量名 从高—>低
而自动类型转换则是从低到高的转换
double c = i;
//自动转换 低—>高不需要像b的转换一样要加上类型名
而在数据转换中需要特别注意
- 不能对布尔型进行转换
- 不能把对象的类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
关于计算的溢出:
int money = 10_0000_0000 ;//JDK7特性,数字之间可以用下划线分割
int year = 20;
int total = money*year;//-1474836480,计算时溢出了
long total2 = year*money;//-1474836480,year*money的结果已经默认为int类型 在转换之前就已经溢出了
long total3 = year*(long)money;
System.out.println(total2);
System.out.println(total3);
由此可知,为了防止计算的溢出,应当在计算的同时对数据进行强制转换