java菜鸟求助各位大神关于类型转换问题

weixin_45110751 2019-05-23 11:35:29
byte z = 62; //=======① byte f = 23 + 39; //======② byte c = 23; //=======③ byte s = 39; //=======④ byte p = c + s; //======⑤ 我想知道为什么第5行会编译报错? 第2行为什么不会报错难道“23+39”最后不是当做int类型来进行赋值给byte f吗? 第1行与第2行有什么不同? 第2行与第5行有什么差异? 求各位大神帮忙解答,最好详细点万分感谢
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coder-lkkk 2019-05-23
  • 打赏
  • 举报
回复

你看图里面的int是可以直接给其他类型赋值的
Coder-lkkk 2019-05-23
  • 打赏
  • 举报
回复
byte、int、long等等这些都是java中的基本数据类型,基本数据类型中的低级类型到高级类型可以自动转换,高级类型到低级类型则需要强制转换。
但是你给的代码的1-4行是属于直接数赋值,数值是int型的,所以只要没有超出byte的范围就可以直接赋值了。
第5行就属于类型转换了,不加个强制转换当然会报错。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧