Java基础:Java 强制类型转换

来源:互联网 发布:mac pro 魔兽世界 编辑:程序博客网 时间:2024/05/29 19:01

Java类型转换包括基本数据类型的类型转换以及对象类型转换。
1、基本数据类型转换

java基本数据类型包括:boolean、char、byte、short、int、float、double。其中只有boolean类型无法与其他类型进行转换,其他的数据类型之间可以相互转换。对于byte、short、int、float、double从后向前需要强制类型转换,从前向后可以自动转换。char可以直接转换成int,其他除boolean之外的数据类型需要强制转换成char。  当从后向前进行强转时进行的操作是直接截断多余的字节,并不保证数据的正负号(移位<<、<<保证正负号,并且只存在无符号右移>>>、不存在无符号左移)。对于char、byte、截断之后的数据是补码表示。例如:  int a=128; byte b=(byte)a;  a=128; b=-128;   b(补)=10000000(补)=-128.

2、对象类型转换
java中对象类型转换只存在与有继承关系的两个对象之间。子类可以直接赋值给父类,子类也可以赋值给其继承的接口类型的变量。但是父类在赋值给子类时并不一定成功。例如:
Son s=new Son();
Father f=s; //成功,子类直接赋值给父类引用
Son s2=(Son)f; //成功,因为f所指向的对象在内存结构上本来就是Son类型
Father f2=new Father();
Son s3=(Son) f2; //编译可以通过,但是运行时出现ClassCastException错误。
java在进行类型转换时,编译器只是检查两个类型是否存在继承关系,而为了确保安全,java还有运行时类型检查机制。

原创粉丝点击