Java中的数据类型在定义时就已经确定了,因此不能随意转换为其他数据类型,但是Java允许用户有限度地做类型转换。数据类型的转换分为"自动类型转换"和"强制类型转换"。
首先我们来看自动类型转换。自动类型转换有两个条件:
(1)转换前后的数据类型兼容;
(2)转换后的数据类型的范围大于转换前的数据类型。
因此可以得到如下的自动转换图。
现在我们看一个例子说明一下自动类型转换的应用。
代码中,第一行输出为int与float的变量运算,按照自动类型转换,int类型自动转换为float,所以最终的结果也是float类型。
第二行输出为int与double的常量运算,按照自动类型转换,int类型自动转换为double,所以最终的结果也是double类型。
第三行输出为两个int的常量运算,不需要做类型的转换,因此结果也是一个int常量。
实测的输出如下,与我们的推断相同。
对于强制类型转换,使用的格式如下:
(要转换的数据类型)变量名称,转化的方法则是舍弃掉小类型不存在的位数。
这种强制类型的转换是在程序代码中完成的,因此称为显式转换。以下的程序说明了如何在整数与浮点数之间转换。
其中x是将float型强制转换为int型,舍弃掉了小数部分,应该得到30
10/3是两个int类型相除,应该得到整数,而使用强制类型转换后将10转为float常量,那么结果就应该是float类型。
实际上,还存在一种自动的转换,即所有类型都向String类型转换。String是一个Java内置的字符串类,将一系列字符序列用双引号""引起来,用来表达一系列char类型的字符的序列。基本类型与String类用+连接就会自动转为String类(实际上我们已经使用过了)。如下是字符串与基本类型用+连接的示例。
我们可以看出,+可以连接两个字符串。而且,只要字符串与其他类型相加就会自动转化为字符串类型。例如int类型的30就会转为字符串"30",然后再和str相连接。下面的字符串常量也是同样的道理。我们可以使用一个空字符串+一个任意类型将它转换为字符串类型(后面有更简介的办法)。
我们可以看到:这样就把其他基本类型转化为String类型了。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!