Java基本数据类型的转换
要解释Java数据类型的转换,可以从两个方面来阐述:
1. Java中的数据类型
2. 数据类型的转换分类
java的数据类型
Java数类型主要分为两大分类:内置数据类型和引用类型。内置数据类型就是本文所提到的基本数据类型;引用类型大多数是指对象类型,比如我们熟知的String类型。
Java中的八大基本类型分别为:byte、short、int、long、float、double、boolean和char。
类型转换
类型转换分为自动类型转换和强制类型转换,自动类型转换是隐式转换,当基本数据类型的小范围向大范围转换时,进行数据类型的隐式转换,不会发生数据溢出,这些是有编译器自己将数据类型进行转换。
强制类型转换是从范围大的向范围小的数据进行转换,这时编译器不会自动地进行转换,那么徐娅我们在代码中表示出来,格式如下(如下代码):
数据类型1 数据类型1的数据= (数据类型1) 数据类型2的数据
int intDate=100;
short shoryDate=(short)intDate;
但是需要注意的是,数据类型2与数据类型1是存在关系的,并且数据类型2的数据在逻辑上不能超过数据类型1的范围。
示例
Java中的boolean不能进行数据类型转换,其他类型可以进行类型转换,类型范围大小为:
byte < short < char < int < long < float < double
系统中默认的是int类型,在进行运算时会将数据范围小的类型转换成int类型然后在计算;但是如果只是定义7种类型进行赋值,不会发生类型转换。
以下展示这些类型转换的示例:
-
byte与int类型转换
显示转换byte byteDate=1024; byteDate=(int)(1+1);
隐式转换
int intDate=100; intDate=(byte)(1+1);
结论:只要数据不超过byte的数据范围,byte数据和int数据能够进行任意转换,无需强制转换。但是如果数据范围大于byte的范围,那么编译将失败,如果需要编译成功需要加上强制转换,这样虽然可以编译成功,但是得不到我们期望的值。
-
long和int类型转换
long longDate=12;
int intDate=(int)longDate;
System.out.println(intDate);
12是int类型,隐式转换成long类型;当long类型需要转换成int类型时,不管是否超出int数据范围,都需要进行强制转换,否则会报编译错误。