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

关于s1+= 1和s1=s1+1的区别。
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

------解决方案--------------------
s1+= 1; 自动转换了
------解决方案--------------------
这都不结贴 服了 看3楼 简洁明了;
其实还有个比较大的区别 大家都没说出来;那就是 s2+=1 比 s2 = s2 + 1 要耗性能。 为什么,你可以百度。 
赶快 结贴吧~
------解决方案--------------------
结贴吧