• java运算过程中的类型自动提升规则


    java表达式中,整数默认是int类型,小数默认是double类型;

     +=  等增强赋值操作符自带有强制类型转换功能

    (以下内容转自http://www.cnblogs.com/xiaonanhai/p/6075729.html)

    1.表达式中的自动类型提升:

    表达式求值时,Java自动的隐含的将每个byte、short或char操作数提升为int类型,这些类型的包装类型也是可以的。

    例如:short s1 = 1;

          s1 = s1 + 1;

    s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误。需要改为short s1=1; s1=(short)(s1+1);结果就是short类型。

    例如:short s1 = 1; 

          s1 += 1;

    +=是java语言中的运算符,Java编译器会对它特殊处理进行正确的编译。

    2.类型提升规则:

    byte、short和char类型的值都被提升为int类型;

    如果有一个操作数是long类型,就将整个表达式提升为long类型;

    如果有一个操作数是float类型,就将整个表达式提升为float类型;

    如果任何一个操作数为double类型,结果将为double类型。

    如果任何一个操作数为String类型,结果将为String类型。

  • 相关阅读:
    记一次unity3d游戏的misc
    【靶场练习_upload-labs复现】Pass01-020
    bugku | login2(SKCTF) 200
    bugku | sql注入2
    buuctf | [强网杯 2019]随便注
    Linux 中 cp 命令(文件复制)
    linux之cp/scp命令+scp命令详解
    StatsD 的使用小结
    深入 webpack 打包机制
    利用webpack打包自己的第一个Vue组件库
  • 原文地址:https://www.cnblogs.com/Zchaowu/p/7440910.html
Copyright © 2020-2023  润新知