java中的类型转换
转换排序(由低到高)
低——————————————————————————>高
char,short,byte——>int——>long——>float——>double
tips:其中float、double为浮点型,其余类型均为整形,自动忽略小数部分
注意事项
- 不能对布尔类型进行强制转换
- 不能把对象的类型转换为不相干的类型
- 由高向低转换是,需要强制转换;反之,低向高不需要强转
小案例
public class Demo06{
public static void main(String[] args) {
//想要表达十亿,为了方便书写可以加下划线,但输出结果不带下划线(JDK7及其以上版本)
int money = 10_0000_0000;
int year = 20;
int total = money*year;
System.out.println(total); //输出结果乱码,由于超出int所能表示的范围
//----------------------------------------------------------
long total2 = (long)(money*year);
System.out.println(total2);//输出结果乱码,因为强制转换前已经超出int表示范围,long的强转无效
//__________________________________________________________
long total3 = money*(long)year;
System.out.println(total3);//输出结果正常,因为year强转为了long类型后,money同样必须进行转换后才能进行运算
}
}