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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下面的类型转化是怎样样的啊。
a. byte b = 1 + 1;     
b. byte b = 1; b = b + 1;
c. byte b = 1; b = b += 1;   
d. byte b = 1; b = ++b;

8 个回复

倒序浏览
a中的1默认是int型的。1+1是int型2.然后赋值给byte型b,损失精度。
b中的b=b+1,这个1也是int型的,b会自动提升。然后b+1是int型2,赋给byte型b,损失精度。
c中“+=”不会自动提升。还是byte型。
d中b自加1也不会自动提升。
回复 使用道具 举报
设计到java中基本类型的自动提升和赋值运算符的问题了!看看相应的视频能over的
回复 使用道具 举报
1.  byte b =(byte)( 1 + 1);    原因:整数的在java 中默认类型是int类型,l因为int类型的数据范围比byte类型的数据范围大,将他赋值到变量b,可能会造成精度损失,需要强制转换成Byte类型。
2.. byte b = 1; b =(byte)( b + 1);  同上,因为 b + 1中,1是int类型,因为b为byte类型比int类型数据范围小,所以与b相加后还是int类型,原因同上, 在保证-128<=b+1<=127 情况下 , 可以使用强制转换将b + 1转换成byte 类型!!   
回复 使用道具 举报
a.编译失败,b编译失败,c 编译通过,d 编译通过
回复 使用道具 举报
各位大神v5 学习了
回复 使用道具 举报
看一下类型转换的就清楚了

点评

确实  发表于 2015-4-12 00:57
回复 使用道具 举报
郁永鹏 来自手机 中级黑马 2015-4-12 00:16:58
8#
你看看书中的类型转换那部分,写的很清楚,视频讲的也很清楚的,自己看会了比别人告诉记忆力要强的多,挺简单的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马