- Java code
public static void main(String[] args) { short s2 = 1; s2 = s2 +1; short s1 = 1; s1+= 1; System.out.println(s1); }
为什么 s2 = s2+1报错
而 s1+=1就不报错呢?
------解决方案--------------------------------------------------------
s2 = s2+1报错的原因是1默认是int类型的,s2+1执行结束后java会自动向上类型转化为int类型,而
s2是short类型的,short是不等于int的所以会报错,你 改成s2 = (short)s2+1就好了 而s1+=1不报错的原因是他和s2+1的处理机制不一样,java会对他自动进行处理
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
s1+= 1; 自动转换了
------解决方案--------------------------------------------------------
这都不结贴 服了 看3楼 简洁明了;
其实还有个比较大的区别 大家都没说出来;那就是 s2+=1 比 s2 = s2 + 1 要耗性能。 为什么,你可以百度。
赶快 结贴吧~
------解决方案--------------------------------------------------------
结贴吧