数据类型转换
(1)数据类型
Java的数据类型分为两大类:基本数据类型和引用数据类型
基本数据类型:包括 整数、浮点数、字符、布尔。
Java中的四类八种基本数据类型
第一类:整数类型 byte short int long
第二类:浮点型 float double
第三类:逻辑型 boolean(它只有两个值可取true false)
第四类:字符型 char 引用数据类型:包括 类、数组、接口。
引用数据类型:包括 类、数组、接口。
(2)自动转换
将取值范围小的类型自动提升为取值范围大的类型
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错
//int类型和byte类型运算,结果是int类型
int j = b + i;
System.out.println(j);
}
byte 类型内存占有1个字节,在和int 类型运算时会提升为int 类型 ,自动补充3个字节,因此计算后的结果还是int 类型。
规则:范围小的类型向范围大的类型提升,
两个数值进行二元操作时,会有如下的转换操作:
如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。
否则,如果其中一个操作数是float类型,另一个将会转换为float类型。
否则,如果其中一个操作数是long类型,另一个会转换为long类型。
否则,两个操作数都转换为int类型。
byte、short、char 运算时直接提升为int 。
即: byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
(3)强制转换
将取值范围大的类型强制转换成取值范围小的类型。比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
格式:数据类型 变量名 = (数据类型)被转数据值;
// double类型数据强制转成int类型,直接去掉小数点。
int i = (int)1.5;
// double类型数据强制转成int类型,直接去掉小数点。
int i = (int)1.5;