short s1 = 1; s1 = s1 + 1;有什么错,short s1 = 1; s1 += 1;有什么错?
答:这是一个类型转换的问题,第一个运算编译会报错,因为s1为short类型,s1+1会将s1转化为int类型,这样s1 = s1+1就会将一个int类型值赋给一个short类型,这样是不能自动转换的,所以编译不通过.但是+=是java里面的一个运算符,他会经过一些特殊处理,所以第二个元是能够正常编译的.
答:这是一个类型转换的问题,第一个运算编译会报错,因为s1为short类型,s1+1会将s1转化为int类型,这样s1 = s1+1就会将一个int类型值赋给一个short类型,这样是不能自动转换的,所以编译不通过.但是+=是java里面的一个运算符,他会经过一些特殊处理,所以第二个元是能够正常编译的.