java中,这个回答正确吗?

 我来答
雪飞潇潇
2019-05-11 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:877万
展开全部

这是典型的面试题目,其实坑很多的;

a和b并没有指出是什么数据类型, 需要我们自己分析:

+和+= 运算符 ,基本数据类型中的(int ,byte,short..等)可以使用;

基本数据类型对应的封装类型(Integer,Byte,Short...)也可以使用

特别注意的是,引用类型String 也可以使用+和+=运算符

所以,现在简单的分成几种情况进行讨论:( 比较粗糙, )

情况一: a,b都是基本数据类型(排除boolean类型),比如int byte ..等

  • 当: a的范围比b的范围大 (并且a的范围是int及其以上的时候),那么两者无区别

  • 当: a的范围比b的范围小, 那么两者有区别

    • 当: a和b都是相同的范围, 但是都比int范围小,是short,byte,char等的时候,虽然a和b数据类型相同,但是a=a+b依然会报错

  • 当a是基本数据类型, b是a对应的封装类时,

(还有很多情况, 封装类型和基本数据类型的情况,比较类似, 就不依次展开了讨论了)

情况二: a 和b 其中一个字符串类型,(因为java中,字符串也可以使用+和+=运算符)

  • 当a 是字符串类型的时候, 那么两者无区别

  • 当b是字符串类型的时候, 那么两者编译都不会通过

所以,表面上是一个简单的面试题目. 但是其实坑很多的,需要仔细分析和推理

pieryon
2019-05-10 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166872
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
回答是对的!朋友
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式