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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aiq黑马程序员 中级黑马   /  2014-7-2 12:07  /  1852 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

short b+=1
//就是short b =(short)(b+1),short类型占2bit内存,1默认int型占4bit,所以s自动提升成int类型。左右边内存大小不等,右边内存比左边大,需要强转成short类型。那么,short b =b+=1也只是多了一步赋值而已。


这是在我回复中看到的,强转不是大内存转小内存吗?short能自动提升成int?

7 个回复

倒序浏览
强转不是向上转型的麽。。
回复 使用道具 举报
+=:这个运算符暗含着类型强制转换。类型强制转换就是向下转型,会丢失精度。
short b=1;
b+=1;
这样就不会报错
回复 使用道具 举报
内存里头是这样的吧
0x00 0x01  这是short类型
0x00 0x00 0x00 0x01这样是int类型。
回复 使用道具 举报
和+运算符做运算的时候,short会自动提升为int类型
回复 使用道具 举报
java中写个1默认是int类型——这个说法有根据么?
回复 使用道具 举报
明白了 谢谢大家了
回复 使用道具 举报
int 占4个字节(byte),32位(bit)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马