社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
short a=1;
//a= (a+1);//类型不匹配:不能从 int 转换为 short
a=(short) (a+1);
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)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!