在程序中,当把一种数据类型的值赋给另一个数据类型的变量时,需要进行数据类型转换。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。
数据类型转换可分为两种:自动类型转换和强制类型转换。
- 自动类型转换
自动类型转换也叫隐式类型转换,指的时两种数据类型在转换的过程中不需要显示地进行声明。要实现自动类型转换,必须满足两个条件:1.两种数据类型彼此兼容。2.目标类型的取值范围大于原类型的取值范围。
整数类型之间可以实现转换,如byte类型的数据可以赋值给short,int,long类型的变量。short,char类型的数据可以赋值给int,long类型的变量。int类型的数据可以赋值给long类型的变量。
默认转换:byte,short,char -> int -> long -> float -> double
- 强制类型转换
强制类型转换也叫显示类型转换,指的是两种数据类型之间的转换需要进行显示的声明。当两种类型彼此不兼容,或者目标类型取值小于原类型时,自动类型转换无法进行,此时需要进行强制类型转换。
boolean类型不能转换为其他的数据类型
强制类型转换:目标类型 变量名 = (目标类型)(被转换的数据)
int a = (int) 3.15; //此时输出a的值为 45
long b = (long)312.12F; //此时输出b的值为312
int c= (int)'d'; //此时输出b的值为100,在Unicode表中d的位置是100