12
返回列表 发新帖
楼主: 臧圩人

[原创] JAVA面试题解惑系列(八)——聊聊基本类型(内置类型)

[复制链接]
论坛徽章:
387
马上加薪
日期:2014-07-30 15:56:19itpub13周年纪念徽章
日期:2014-09-30 11:08:572015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
11#
发表于 2008-8-27 10:29 | 只看该作者
原帖由 muchu123 于 2008-8-26 13:29 发表
这个什么意思?
在s1=s1+1;中,s1+1运算的结果是int型,把它赋值给一个short型变量s1,所以会报错;而在s1+=1;中,由于是s1是short类型的,所以1首先被强制转换为short型,然后再参与运算,并且结果也是short类型的,因此不会报错。


s1=s1+1不是和S1+=1一样的么?怎么一个错一个不错的?


而在s1+=1;中
1首先被强制转换为short型

s1+1
short + int
把short 的 s1 转换成高阶的 int 32位 然后再 +1
(s1+1)的结果 是int

把int 赋值给short 报编译错误

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2008-8-29 20:09 | 只看该作者
而在s1+=1;中
1首先被强制转换为short型

s1+1
short + int
把short 的 s1 转换成高阶的 int 32位 然后再 +1
(s1+1)的结果 是int

把int 赋值给short 报编译错误



s1+=1转换成把1转换成short??怎么个原理哦s1+=1不是等于s1=s1+1

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2008-9-2 17:33 | 只看该作者
图看不到。。。能更新下吗?还有lz这个有文档下吗?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表