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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Boiled_Water   /  2014-6-5 08:29  /  13229 人查看  /  153 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

C D 知道是对的,但是A就不清楚了,B确定是 错的,先看一下LZ的 分析吧
回复 使用道具 举报
D正确。其他三项都是byte1+int1
回复 使用道具 举报
看下分析
回复 使用道具 举报
acd是正确的。
b有类型向上转型的问题
回复 使用道具 举报
看看是什么
回复 使用道具 举报
正确的还问为什么.感觉就像问为什么1+1 =2
回复 使用道具 举报
看看解释~
回复 使用道具 举报
B错误,其余正确。
回复 使用道具 举报
解释牛b,我没想这么全面。。
回复 使用道具 举报
夏日蓝雪 发表于 2014-6-5 10:46
有一点还不太懂:为什么 b=b+1 不能通过编译,而b+=1 就能通过编译呢?根本原因是什么?虚拟机在执行它们 ...

1、b = b+1 不通过的原因是int型的1和byte型的b相加后会向上转型为Int,int型无法给Byte型的b赋值
2、+= 运算符会根据变量的类型进行强制转换,那么他们相加后会转换为BYTE型再进行赋值。
回复 使用道具 举报
学习!!!
回复 使用道具 举报
yjck 中级黑马 2014-6-20 21:15:07
112#
c吧  有强制转换
回复 使用道具 举报
a c d 正确,b是一个变量和一个int类型数运算,不能确定结果是否在byte的范围内,不正确
a是两个int类型数计算,结果在byte范围内。
c是赋值运算,将b += 1的值赋给b,没有数据类型的转换
d是变量本身在自增,没有和其它类型数据做运算,没有数据类型的转换
所以a c d 正确
回复 使用道具 举报
,,,,,,,,,
回复 使用道具 举报
不错,,,,,,
回复 使用道具 举报
嗯,我应该猜出来了
回复 使用道具 举报
来看看 ,,,测试测试,,
回复 使用道具 举报
看看结果
回复 使用道具 举报
:):(  这不是测试题么
回复 使用道具 举报
看看看,?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马