基本类型的类型转换(隐式类型转换)和强制类型转换(译二)

本文详细介绍了基本类型的类型转换,包括隐式类型转换和强制类型转换。解释了如何使用强制类型转换解决隐式转换无法处理的情况,并给出了具体的代码示例。特别强调了在数据范围变化时可能出现的溢出现象。

基本类型的类型转换(隐式类型转换)和强制类型转换

基本类型的强制转换

所谓强制类型转换(CAST)是根据程序员的意志来进行类型变换的处理。如果隐式类型转化无法进行的场合,使用强制类型转换。用“( )”包围需要强制转换的类型,然后将其放在需要转换的变量之前。

(変換したい型)変換元の変数;

【例3】强制转换的例子。

int x = 10;
byte y = (byte)x;

将int类型的变量强制转换为byte类型,然后赋值给y。
如果是默认的隐式类型转换是无法将int类型转换为byte类型的。

强制转换的规则

boolean类型以外的基本类型的变量可以强制转换为其他非boolean类型的基本类型的变量。不管是将变量强制转换为存储区域更大的类型,还是将变量转换为存储区域更小的类型,都是可以。将变量强制转换为存储区域更大的时候,即使不进行强制转换,隐式的类型变换也是可以进行的。

boolean类型无法强制转换为其他类型。
将变量转换为存储领域强制转换为更窄的场合,待变换的数据可能发生溢出。

【例4】强制转换数据溢出的实例。

public class ExVar1 {
    public static void main(String[] args) {
        short x = 257;
        byte y = (byte)x;  //(1)强制转换为byte类型
        System.out.println(y);  //(2)
    }
}

说明4
(1)将short类型的变量强制转换为byte类型,然后将byte类型变量赋值给y。
(2)用println方法打印变量y的值。byte类型的变量最多制定存储一个字节的值(有符号,-128~127)。超过1个字节的数据被截断(数据溢出)。因为这个原因无法得到想要的结果。

强制转换_数据溢出
运行结果4

D:\JAVA>javac ExVar1.java
                                                
D:\JAVA>java ExVar1
1

D:\JAVA>

更新日:2012/02/18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值