你这个问题 涉及 隐式转换, 和强制转换的 问题。
short s = 1; 这 是 一个简单的定义,好理解。
s = s + 1; 这个其实 是 一个赋值语句,但是 注意这里的s是 short类型的, short类型占用2个字节,
Java里 正整数默认的都是 int 类型的。 s =s +1;相当于你把一个 short类型(2个字节)的加上一个 int类型(4个字节)的和的结果赋值给了s,这个是隐式转换(自动转换),编译肯定要报错的。 s+=1;则是强制转换。 就是把你的 s+1 强制转换成 short型的。
|
|