相信有接触过编程开发的朋友们,一定会遇到不同的数据类型,也会遇到将一种数据类型转换为另一种类型的情况,在java的不同数据类型之间是有一定的规则的,这篇文章就来介绍数据类型转换规则是怎样的,正在学习java零基础教程的新手新手朋友们可以来学习下面的内容。
在学习java的数据类型转换规则前,先来回顾一下java数值都有哪些类型:(1)int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits);(2)float长度数据类型有:单精度(32bits float)、双精度(64bits double);(3)boolean类型变量的取值有:ture、false;(4)char数据类型有:unicode字符,16位。
Java的数据类型规则可以分为隐式转换和显式转换:
一、隐式转换:
隐式转换也叫自动类型转换,如果以下2个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type conversion)。
2个需要满足的条件是:(1)两种数据类型彼此兼容;(2)目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)。
当以上2个条件都满足时,拓宽转换(widening conversion)发生。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。
在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。转换规则如下:
(1)数值型数据的转换:byte→short→int→long→float→double。
(2)字符型转换为整型:char→int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
二、显式转换
Java数据类型转换规则的显式转换也叫做强制类型转换,尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果需要将double型的值赋给一个int型的变量,将怎么办?这种转换不会自动进行,因为 double 型的变化范围比 int 型的要小。这种转换有使成为“缩小转换”,因为你肯定要将源数据类型的值变小才能适合目标数据类型。
所以当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。其语法格式如下:
(type)variableName
其中,type为variableName要转换成的数据类型,而variableName是指要进行类型转换的变量名称,强制转换的实例如下:
上述代码中首先将double类型变量b的值强制转换成int类型,然后将值赋给a,但是变量b本身的值是没有发生变化的。
在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。
大家在学习完java的各种数据类型后,就要知道并学习数据类型转换规则了,都是属于java基础范畴内的知识,是零基础的新手在java零基础教程中会学习到的内容,所以上面介绍的显式和隐式的数据类型转换规则还是要好好学习并掌握的。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习