数据类型转换

数据类型转换

当数据类型不一样时,会发生类型转换,类型转换分为以下两种:

1. 自动类型转换(隐式类型转换)

特点:不需要进行代码的特殊处理,自动转换

规则:数据范围从小到大转换,也就是说,数据范围小的可以转换为数据范围大的 ,例如int可转为Long

Long num=100;

对于该条语句,等号右边其实是int类型,左边是long类型,左右不一样,此处就是完成了自动类型转化

2.强制类型转换(显式类型转换)

特点:代码需要进行特殊的格式处理,不能自动转换

规则: 范围小的类型名 变量名=(范围小的类型名)范围大的数据; 例如

int num=(int)100L;

3.类型转换注意事项

  • 强制类型转换一般不建议使用,会发生精度丢失,数据溢出等情况

    通俗来讲,也就是大杯果汁放小杯会存在放不下的情况

    int num=(int)6000000000000000L;

    上面语句产生数据溢出,没有语法错误,但是存在输出与我们的期望值不一样

    int num1=(int)3.9;//输出结果为3

    上面语句产生精度损失 ,并非四舍五入

  • byte,short,char 都可以进行数学运算 例如"+""-"

    char c='A';c=c+1;

    此时c的值为66

  • byte,short,char 在进行数学运算的时候,先转换为int类型,再进行数学计算

    byte num=1;
    byte num1=2;
    //byte result = num+num1; 编译时,会报错,在运算时,将byte转为了int应更改为:
    //byte+byte->int+int
    int result = num+num1;
    System.out.println(result);
    

    注意:如果需要使用byte 需要进行强制类型转换,前提是逻辑上保持一致

布尔类型不能发生数据类型转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值