当前位置: 代码迷 >> J2SE >> 关于s1+= 一和s1=s1+1的区别
  详细解决方案

关于s1+= 一和s1=s1+1的区别

热度:5009   发布时间:2013-02-25 00:00:00.0
关于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 要耗性能。 为什么,你可以百度。 
赶快 结贴吧~
------解决方案--------------------------------------------------------
结贴吧
  相关解决方案