Java中数据类型的转化

Java中的数据类型在定义时就已经确定了,因此不能随意转换为其他数据类型,但是Java允许用户有限度地做类型转换。数据类型的转换分为"自动类型转换"和"强制类型转换"。

工具/原料

  • jdk
  • eclipse/idea

方法/步骤

  1. 1

    首先我们来看自动类型转换。自动类型转换有两个条件:

    (1)转换前后的数据类型兼容;

    (2)转换后的数据类型的范围大于转换前的数据类型。

    因此可以得到如下的自动转换图。

  2. 2

    现在我们看一个例子说明一下自动类型转换的应用。

    代码中,第一行输出为int与float的变量运算,按照自动类型转换,int类型自动转换为float,所以最终的结果也是float类型。

    第二行输出为int与double的常量运算,按照自动类型转换,int类型自动转换为double,所以最终的结果也是double类型。

    第三行输出为两个int的常量运算,不需要做类型的转换,因此结果也是一个int常量。

  3. 3

    实测的输出如下,与我们的推断相同。

  4. 4

    对于强制类型转换,使用的格式如下:

    (要转换的数据类型)变量名称,转化的方法则是舍弃掉小类型不存在的位数。

    这种强制类型的转换是在程序代码中完成的,因此称为显式转换。以下的程序说明了如何在整数与浮点数之间转换。

  5. 5

    其中x是将float型强制转换为int型,舍弃掉了小数部分,应该得到30

    10/3是两个int类型相除,应该得到整数,而使用强制类型转换后将10转为float常量,那么结果就应该是float类型。

  6. 6

    实际上,还存在一种自动的转换,即所有类型都向String类型转换。String是一个Java内置的字符串类,将一系列字符序列用双引号""引起来,用来表达一系列char类型的字符的序列。基本类型与String类用+连接就会自动转为String类(实际上我们已经使用过了)。如下是字符串与基本类型用+连接的示例。

  7. 7

    我们可以看出,+可以连接两个字符串。而且,只要字符串与其他类型相加就会自动转化为字符串类型。例如int类型的30就会转为字符串"30",然后再和str相连接。下面的字符串常量也是同样的道理。我们可以使用一个空字符串+一个任意类型将它转换为字符串类型(后面有更简介的办法)。

  8. 8

    我们可以看到:这样就把其他基本类型转化为String类型了。

  • 发表于 2018-02-11 00:00
  • 阅读 ( 288 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论