• java 运算符使表达式结果类型自动提升


    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类型。

    例如:

    byte b=1;

    char c='a';

    short s=1024;

    int i=50;

    float f=2.0f;

    double d=.123;

    double result = (f * b) + (i / c) - (d * s);

    f*b中,b被自动提升为float类型,该表达式结果是float类型;

    i/c中,c被自动提升为int类型,该表达式结果是int类型;

    d*s中,s被自动提升为doubl类型,该表达式结果是double类型;

    最后,float+int-double,结果会被提升为double类型,double类型为最后结果result的类型。

  • 相关阅读:
    SVN操作指南
    .NET Tools
    SQL条件查询控件
    txt文件导入Sql Server数据库表方法
    黑盒测试用例设计方法
    JS库
    在 C# 中 ("x" == "X") 何时成立?
    奶牛问题,别人写的,自己试了一下.
    Some Cool Tips For .NET
    Excel Data Reader Read Excel files in .NET
  • 原文地址:https://www.cnblogs.com/antis/p/6228478.html
Copyright © 2020-2023  润新知