• Java数据类型自动转换(++ ,+=)


    在算术表达式中的自动类型转换

    • 数据从类型范围小的自动向数据范围大的转换

    • 整数向浮点数转换(包括long类型向float转换)

      • 例子:
    • char类型的范围内与整数之间转换依据ASCII表

    强制转换会丢失精度,尤其是超过数据范围和整数与浮点数的转换

    在赋值表达式中的自动类型转换

    • 先看两个例子

    • 这里的m+2L就是上面的自动类型转换,在执行加法时就成了long类型,所以是long类型的2147483649(已经超出了int的范围)

      • num+1也是自动类型转换,在执行加法时就成了int类型,所以是int类型的128(已经超出了byte的范围)
    • 再来看++的情况

      • 这里没有发生自动类型转换吗,是有的,而且还有强制类型转换。如果只是num = num + 1是会产生编译错误的,所以这里还有默认的强制类型转换num = (byte) (num+1),所以结果被截取为byte类型,变成了-128。
    • +=情况类似

      • m+=2L可以看做m=(int)(m+2L),强制类型转换为int,变成-2147483647

    至此,若有纰漏,望各位不吝赐教

  • 相关阅读:
    ajax参考增删改查
    linux 断网 扫描基本命令
    linux 基本命令大全
    开发者用的linux系统推荐
    python DRF获取参数介绍
    python DRF操作流程
    python 异常处理函数--raise
    DRF-Rest_Framework 学习文档
    前端框架VUE
    python Django rest-framework 创建序列化工程步骤
  • 原文地址:https://www.cnblogs.com/0nePlece/p/13296854.html
Copyright © 2020-2023  润新知