前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中short a=1;a=a+1有何问题

Java中short a=1;a=a+1有何问题

作者头像
孙小北
发布2024-01-30 14:09:19
1340
发布2024-01-30 14:09:19
举报
文章被收录于专栏:孙小北的成长笔记

Java中short a=1;a=a+1有何问题

养浩然之气,做博学之人

short a=1; a=a+1;

由于a+1运算时会自动提升表达式的类型,即int类型,再将结果赋值给short类型的a时,类型会不匹配;

short a=1; a+=1;

java编译器会对+=进行特殊处理,进行了类型转换,通过反编译.class源码可以看到a+=1被编译为:

a=(short) (a+1)

代码:

代码语言:javascript
复制
short a=1;
//a= a+1;//类型不匹配:不能从 int 转换为 short
a=(short) (a+1);
a+=1;

数据类型自动转换规则:

byte --> short/char--> int -->unsigned -->long -->double -->float

注意:

byte和char、char和short之间需要相互强转;Boolean类型和其他基本数据类型之间不能相互转换。

转换规则是先转换为高位数据类型再进行计算,结果是高位类型。

如果采用+=、*=等运算符时,系统会自动强转类型为高位类型。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java中short a=1;a=a+1有何问题
    • short a=1; a=a+1;
      • short a=1; a+=1;
        • 数据类型自动转换规则:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档