Java中的类型转换
1、 基本数据类型间的转换
自动类型转换规则:
byte、short、char->int->long->float->double
注意:
1、在Java中默认的整型数据类型是int、浮点型默认是double
2、char转换成int的时候是转换成对应的ASCll码值
强制转化用法:
数据类型 变量 = (数据类型)原数值;
注意:
1、强制类型转换可能导致精度损失和数据丢失
例如:
//精度损失
double d=3.14444444;
int a=(int) d; //a=3
//数据丢失
int b=200;
byte c=(byte) b; //c=-56
2、常见引用数据类型间的转换
2.1字符串与基本数据类型间的转换
字符串类型转换为基本数据类型
利用封装类进行转换
例如:
String s = "1000";
Integer a = Integer.valueOf(s);
Double d = Double.valueOf("1312.2323");
基本数据类型转换为字符串类型
int a = 100;
Integer a1 = a;
a1.toString();
2.2自定义类之间的转换
子类转换成父类
直接转换:用父类的引用指向子类的实例
例如:
List list = new ArrayList();
父类转换为子类
前提:
1.父类的引用所指向的必须是对应子类的实例
总结:引用的级别必须大于等于实例(引用和实例的类型相同
或引用是实例的父类型)
代码:
public class A {}
class B extends A{}
class C extends B{}
A aa = new A();
A ab = new B();
A ac = new C();
B ba = (B) aa; //此处存在运行时异常
B bb = (B) ab;
B bc = (B) ac;