目录
  1. 1. +=你不知道的事儿
+=真的那么简单么?

+=你不知道的事儿

看一道面试题:

面试题:
short s=1;s = s+1;
short s=1;s+=1;
上面两个代码有没有问题,如果有,那里有问题。
class demo {
public static void main(String[] args) {
/* */
short s = 1;
s = s + 1;
System.out.println(s);

short s1 = 1;
s1 += 1; // 好像是 s1 = s1 + 1;
System.out.println(s1);
}
}

总结:

结果是第一个代码有问题
那为什么第二个木有问题呢?
    扩展的赋值运算符其实隐含了一个强制类型转换。
    s += 1;
    不是等价于 s = s + 1;
    而是等价于 s = (s的数据类型)(s + 1);

其实可以发现,平时用类型省时省力用这+=,熟不知它还有一个类型的强制转换

文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-08/08/%E5%AD%A6%E4%B9%A0/%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0/JAVA/+=%E7%9C%9F%E7%9A%84%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95%E4%B9%88%EF%BC%9F/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论