类型转换s+=1剖析

类型转换面试题

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);
    }
    
    在编译时期就将类型进行了强制转换,所以不会报错,但是依旧会存在精度丢失的问题。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容