类型转换问题(java会把byte,short和char的运算操作转换为int类型即低精度自动向高精度转换)

byte b=2,e=3;
byte f= b+e;

以上代码不能通过编译,应改为:

byte b=2,e=3;
byte f=(byte) (b+e);//因为byte,char,short会自动转为int,这里必须强制转换为byte

 

但+=运算符不会产生类型转换,如:

short s=1;s=s+1;编译错误

short s=1;s+=1;正确

你可能感兴趣的:(java,心得)