日期:2014-05-20  浏览次数:20621 次

JAVA中一个关于赋值精度问题。在线等答案。
short s=1;s=s+1;和short s=1;s+=1;
为什么会不同?求详解。

------解决方案--------------------
short s=1; //s是short型
s=s+1; //s是int型,类型没有转换,所以错误

short s=1;//s是short型
s+=1;//s 仍然是short型,好像是s+=1和s=s+1是相等的,但是他们的编译过程是不同的,s=s+1两边的类型不一样,但是s+=1是s=s的,是相加过后进行类型转换过后再赋值给s 的。