多数人都只知道数据类型转换的两种,即自动转型和强制转型,往往忽略了内置类作转型!我也并不例外,只是偶然,我知道了“内置类作转型”,今天,我就在这儿对这几种转型分别做简要的叙说。
1.自动转型
这种数据类型转换方式并不需要经过处理,而是有编译器自动进行转化操作,因此称为“自动转型”。例如:整型、浮点型和字符型数据进行混合运算时,首先需要把不同类型的数据转换为同一类型,然后才能进行运算。转换时,系统将按照数据类型的表示范围由小到大的转换原则自动进行。
2.强制转型
表示范围大的数据类型要转换成表示范围小的数据类型需要用到强制类型转换,
例如:String str = "999";
Integer num = (Integer)str; 但是这种转换方式可能导致溢出或精度下降。
3.内置类作转型
上述两种转换方式都只是用于在基本的数据类型间的转换,实际上基本数据类型与对应基本数据类型的包装类也经常需要作数据转型。肉厚基本数据类型的包装类是以类来处理的,它不是基本数据类型,因此无法自动转型,也无法强制转型。
基本数据类型的包装类转换成基本数据类型是通过包装类中的方法实现的,
例如:Integer a = new Integer(999);
int b = a.intValue();
(1)
Boolean bool = new Boolean(True);
System.out.println("boolean boo = "+ bool.booleanValue());
结果是:boolean boo = true
(2)
Float fA = new Float(0.01);
System.out.println("float f B="+fA.shortValue());
结果是:float fB = 0;
(3)
Byte by1 = new Byte((byte)001);
System.out.println("byte by2 ="+by1.byteValue());
结果是:byte by2 = 1;