A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 小白进阶之路 高级黑马   /  2018-1-2 21:46  /  770 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问:如下程序语句有什么问题吗?
short
s1
=

1
;
s1
=
s1
+

1
;
   
//1
short
s2
=

1
;
s2
+=

1
;
   
//2

答:对于注释 1 来说,在 s1+1 运算时会自动提升表达式的类型为 int,所以将 int 赋予给 short 类型的变量 s1 会出现类型转换错误(无法编译,IDE 提示错误),除非主动加上强转。对于注释 2 来说 += 是 java 语法规定的运算符,所以 java 编译器会对它进行转换特殊处理,故可以正确编译执行。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马