2.2、类型转换

1、不同类型之间的数据可以互相转换,但是要满足一定的规则‘。

步骤 1 : 转换规则

 
精度高的数据类型就像容量大的杯子,可以放更大的数据 
精度低的数据类型就像容量小的杯子,只能放更小的数据 
小杯子往大杯子里倒东西,大杯子怎么都放得下 
大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出 
需要注意的一点是 
虽然short和char都是16位的,长度是一样的 
但是彼此之间,依然需要进行强制转换

public class HelloWorld {

    public static void main(String[] args) {

        char c = 'A';

        short s = 80; 

        //虽然short和char都是16位的,长度是一样的

        //但是彼此之间,依然需要进行强制转换

        c = (char) s;

        //直接进行转换,会出现编译错误

        s = c;       

    }

}

 

步骤 2 : 低精度向高精度转换

long l = 50;

int i = 50;
l 是long类型的,其类型长度是64位
i 是int类型的,其类型长度是32位
所以l的精度,比i的精度要高
l = i;
把i的值赋给l, 首先l和i彼此的类型是不一样的,那么能否转换就取决于彼此的精度
这个例子,是低精度向高精度转换 是可以正常转换的
换句话说,int比较小,要放进比较大的long,随便怎么样,都放的进去

 步骤 3 : 高精度向低精度转换

byte b = 5;

int i1 = 10;

int i2 = 300;

b = i1;

b=i2;
b的类型是byte,其长度是8,最大只能放127
i1 的类型是int, 其长度是32,最大,反正就是很大了,超过127
所以, 把int类型的数据转成为byte类型的数据,是有风险的
有的时候是可以转换的,比如 b = i1 (i1=10);
有的时候不可以转换 比如 b= i2 (i2=300) 因为放不下了
编译器就会提示错误
这个时候就只能采用强制转换,强制转换的意思就是,转是可以转的,但是不对转换之后的值负责。 风险自担,后果自负

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值