由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换,需要将运算中,不同的类型的数据转换成相同的类型,再进行运算,而类型转换有两种:强制类型转换和自动类型转换。
//类型转换的容量高低
// 低 --------------------------------> 高
byte,short,char -> int -> long -> float -> double
一、强制类型转换
强制类型转换是一种把变量从一种类型转换为另一种数据类型的方式,通过强制类型转换运算符来把值显式地从一种类型转换为另一种类型。
//强制类型转换 (类型)变量 高到低
int der = 127;
byte z = (byte)der;
/*要小心容量溢出,不要超出该类型的数值范围:
如,byte:-127~127;*/
System.out.println(z);
输出结果如下:
强制类型转换是通过使用强制类型转换运算符来指定。是由容量高的类型转换成容量低的数据类型;在编程时,有需要类型转换的时候都用上强制类型转换运算符,是一种良好的编程习惯。
强制类型转换也有一些注意事项:
-
布尔值不能转换;
-
对象类型不相干不能转换;
-
当容量高的转换成容量低的数据类型时,才用强制转换;
-
强制转换存在内存溢出和精度问题。
System.out.println((int)23.6);//精度损失 System.out.println((int)129);//内存溢出
输出结果如下:
二、自动类型转换
自动类型转换是一种隐式的类型转换,是低容量转换成高容量的类型转换,也是出现最频繁的转换。
char cha = 'w';
int yet = cha + 2;
//在运算中cha从char转换int,从低到高
System.out.println(yet);
输出结果如下:
每天一点Java知识,开心又快乐!