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