基本类型之间的转换
在平常的工作中,我们常常需要将我们数据的类型进行转换。本文将对这些转换进行简单的总结。(本文参考与Java技术手册第六版)
1.基本数据之间的转换
在java中,我们允许整数类型与浮点数类型进行转换。而且,由于每个字符都对应Unicode编码中的一个数字,所以字符与整数和浮点数之间也可以相互转换.布尔值是唯一一种不能和其它基本类型之间相互转换的基本类型。
类型转换分为两种
放大转换:将某种类型的值转换成取值范围更广的类型
缩小转换:与放大转换相反,且并不总是安全的。如果需要执行缩小转换,而且确信这么做不会丢失数据或精度,可以使用强制类型转换
int a =2 ;
byte b =(byte)a;
i = (int)13.456;
2.引用类型之间的转换
和基本类型相同,同样分为放大转换和缩小转换两种,即向父类还是子类进行转换。若向子类进行转换需要强制转型并可能产生问题。
在继承中,子类可以自动转型为父类,但是父类强制转换为子类时只有当引用类型真正的身份为子类时才会强制转换成功,否则失败。
Bird bird = new Bird();
Chicken chicken =new Chicken ();
bird = chicken;
chicken = (Chicken )bird ; //会抛出异常