Java 中 x += y 与 x = x + y 的区别

在大多数情况下,二者可以视为等价的。但是,当 x、y 的类型不同时,就体现出差异了。

定义 char count = '0'count += 2 可以正常运行,count = count + 2 则会出现编译错误。如图:

为什么会这样?因为 += 自动做了类型转换,详见此问答。会将最终结果转换为左操作数的类型。

另外,+ 也会做隐式的类型转换,将 char 提升为 int。以下三个测试用例,是等价的:

站长数十年成长感悟,输入暗号查看

桩白墨公众号上还能加入书舟书友群、美团外卖红包群,免费领取站桩和原创 chatgpt 教程哦
暗号:
请关注本站微信公众号,回复“暗号”,即可获取。在微信里搜索“桩白墨”或者“baimoz”或者微信扫描右侧二维码都可以关注站长微信公众号。