1.5数据类型转换
类型转换是将一个值从一种数据类型更改为另一种数据类型的过程。例如,可以将String类型数据“457”转换为一个数值型,而且可以将任意类型的数据转换为String类型。
如果从低精度数据类型向高精度数据类型转换时,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。
数据转换有两种方式,即隐式转换和显式转换
1.5.1 隐式类型转换
从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换,也可以称为自动转换。下列基本数据类型会涉及数据转换(不包括逻辑类型),这些类型按精度从“低”到“高”排列的顺序为byte < short < int < long < float < double。
隐式转换也要村寻一定的规则来解决在什么情况下,将哪种类型的数据转换成另一种类型的数据。详细规则如表1.10所示。
操作数1的类型 | 操作数2的类型 | 转换后的数据类型 |
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
1.5.2显式类型转换
当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换(又称强制类型转换),当执行显式类型转换时可能会导致精度缺失。语法如下:
(类型名) 要转换的值
当执行显式类型转换时,可能会导致精度缺失。除boolean类型外,其他基本数据类型都能以显式类型转换的方法实现转换。