基本数据类型之间的转换(值转换)
boolean类型不可以和其他基本数据类型进行转换
整型,字符型,浮点型之间的转换遵行一下原则:
- 容量小的类型会自动转换成容量大的类型,类型由小到大:
byte,short,char<int<long<float<double
byte,shor,char之间不会转换,他们三者在计算时会转换为int型
PS:int型可以 直接(不能是多个(byte/short/char)相加后转换为了int的值(以后能不能看懂。。。。。。))赋值给byte,short,char型,但是不能超出他们的范围。- 容量大的类型在转换为容量小的类型时要加强制转换符,可能会造成精度降低或溢出,要 格外注意
- 不同数据类型在计算时会都先转换成里面最大的那种数据类型,然后计算
- 实数常量:默认为double型
整型常量:默认为int型
引用数据类型之间的转换(引用转换)
把一个Stirng类型表示的值转换成基本数据类型:
Integer.parseInt(Stirng s)
Double.parseDouble(String s)
Boolean.parseBoolean(String s)
等等(char有另外的方法)把一个基本数据类型转换成String类型:
Interger.toString(int i)
由于JAVA的多态,子类可以隐式的转换为父类(其实也就是父类引用指向之类对象),这样的转换过后,父类的引用仍然可以通过强转转化为子类(子类原有的属性和方法不会丢失,因为子类对象在内存中并未发生变化),示例:
//父类强转回子类后,子类仍可以使用自身属性和方法
Father father = new Son();
Son son = (Son)father;
- 但是!父类直接强转为子类会报ClassCastException异常
//会抛出ClassCastException异常
Father father = new Father();
Son son = (Son) father;