加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – s = s s和s = s之间的差异

发布时间:2020-12-14 05:35:05 所属栏目:Java 来源:网络整理
导读:我做了一个小小的测试来操纵一个短片,我遇到了一个编译问题. 以下代码编译: short s = 1;s += s; 而这个没有: short s = 1;s = s + s; //Cannot convert from int to short 我读过短信自动提升为int,但是这两个代码有什么区别? 解决方法 你是对的,短小提
我做了一个小小的测试来操纵一个短片,我遇到了一个编译问题.
以下代码编译:
short s = 1;
s += s;

而这个没有:

short s = 1;
s = s + s; //Cannot convert from int to short

我读过短信自动提升为int,但是这两个代码有什么区别?

解决方法

你是对的,短小提升到ints.这在二进制运算符的评估期间发生,它被称为二进制数字升级.

但是,复合赋值运算符(如=)可以有效地清除这一点. Section
15.26.2 of the JLS状态:

A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T) ((E1) op (E2)),where T is the type of E1,except that E1 is evaluated only once.

也就是说,这相当于缩减.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读