美文网首页
类型转换s+=1剖析

类型转换s+=1剖析

作者: doMyselfzy | 来源:发表于2017-02-15 22:37 被阅读35次

    类型转换面试题

    1.short s = 1; s = s + 1;
    2.short s = 1; s += 1;
    

    分析

    • 第一个行代码在编译时期就会报错,s属于short类型,当和1做加法是,由于 1是默认类型int,所以会自动提升数据类型,加法结果是一个int类型,然后赋值给一个short,所以会丢失精度。
    • 第二行代码在编译器编译完成的结果如下:
      public static void main(String[] args)
      {
          short s = 1;
          s = (short)(s + 1);
          System.out.println(s);
      }
      
      在编译时期就将类型进行了强制转换,所以不会报错,但是依旧会存在精度丢失的问题。

    相关文章

      网友评论

          本文标题:类型转换s+=1剖析

          本文链接:https://www.haomeiwen.com/subject/yokcwttx.html