- 数据类型的转换是将一个数值从一种数据类型转化成另一种数据类型的过程。
- Java中数据类型的转换有两种:隐式数据类型转换和显式数据类型转换。
- 隐式数据类型转换是指系统自动执行,无序程序员显式编程而实现的数据类型转换过程。如Java程序中低级数据类型到高级数据类型的转换都是隐式数据类型转换。
- Java中数据类型由低级到高级排序:byte<short<int<long<float<double。所以当该序列中左侧某个数据类型要变为右侧某个数据类型时,系统会自动执行相应的类型转换,这就是隐式数据类型转换
- 当使用一个低级别(低精度)数据类型的变量给一个高级别的数据类型变量赋值时,会触发隐式数据类型转换,即系统会自动将低级别数据类型的数值转化成高级别数据类型,如下面的例子:
int x=12; float y=x; System.out.println(y); //结果:12.0 其实是将12从int型数值变成了float型数值
- 当两个不同级别数据类型的数值分别位于同一个操作符的两侧时(也即当两个不同级别数据类型的数值分别是同一个操作符的两个操作数时),会触发隐式数据类型转换,转换规则如下:
- 显式数据类型转换(又称强制类型转换)
- 前面已经讲过,当低级别(低精度)的数据类型需要转变成高精度的数据类型的时候,系统会自动执行,但是某些情况下需要将高精度的数据类型转变成低精度数据类型,这时系统是不会自动执行的,因为这个转变过程可能会损失一部分数据,所以高精度到底精度数据类型的转换需要使用显式数据类型转换方法,即需要编程人员在Java程序中显式指定相应转换方法
- 语法:(目的类型名称)待转换的数值
- 例一, int a=(int)12.3; //double型变成int型
- 例二, long l=(long)13f; //float型变成long型
- 例三, int b=(int)’g’; //char型变成int 型
- 除了boolean类型之外的其他基本数据类型之间的转换,都可以使用显示数据类型转换的方法达到。(即可以使用显式数据类型转换实现byte、short、int、long、float 、double、char这7种基本数据类型中任意两种基本数据类型之间的转换)
- 当把整数赋值给byte、short、int、long型变量时,一定要注意该整数的取值不要超出对应数据类型的取值范围,否则应该使用显式数据类型转换避免报错:byte b=(byte)129; //因为129超出了byte型变量的取值范围,所以要使用显式数据类型转换才能避免程序报错
- 隐式数据类型转换是指系统自动执行,无序程序员显式编程而实现的数据类型转换过程。如Java程序中低级数据类型到高级数据类型的转换都是隐式数据类型转换。