—— 本文参照 Learn Java for Android Development (第三版)
类型转换符
类型转换符的用法是(类型)操作数,作用是要把操作数转换为括号里面的类型。这个操作符之所以存在是因为我们在平时的数据处理过程中一不小心数据就因为自动转换而产生错误或者误差。例如:short s = 1.65 + 3;如果我们在代码里面这样写的话编译器就会报错,因为这里我们会将一个64位的双精度操作数1.65转化为一个16位的整形,这时候小数点后面的数据就会丢失,也就是说s的结果会是4而不是4.65。
其实在实际的开发过程中部分数据丢失也不一定会产生问题,所以 1.65 + 3;这样编译器就会知道我们想把1.65+3的结果转化为短整形,这样结果的小数部分就会被省略掉了。
下面我们给出一个例子来证明类型转换符的必要性:
char c = 'A';
byte b = c;
以上表达式在执行的时候编译器会抛出异常,因为c表示的是一个无符整形变量,它的数据范围是0-65535,但是b表示的是一个有符号整形,并且数据范围是-128到127。虽然在上面的表达式里面'A'的值是65,转化以后也不会越界,但是如果c初始化为'\u0323',这时候错误就会出现了。
这里的解决办法就是用类型转换符将c转化为b的数据类型,这样编译器就会将字符型的c强制转化为字节类型:
byte b = (byte) c;
JAVA支持以下类型的转化:
1 字节类型转换为字符类型
2 短整形转换为字节类型或者字符类型
3 字符类型转换为字节整形或者短整形
4 整形转换为字节类型,短整形或者字符类型
5 长整形转换为字节类型,短整形,字符类型,或者整形
6 浮点类型转换为字节类型,短整形,字符类型,整形或者长整形。
7 双精度浮点型转换为字节类型,短整形,字符类型,整形,长整形或者浮点类型。
Page 59
网友评论