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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梦之蓝2015 初级黑马   /  2015-3-10 09:54  /  864 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚看视频里老师老提int 能数据类型提升,搞晕了

2 个回复

倒序浏览
这个你可以这样的理解,譬如int型的是4个字节,而byte类型是一个字节,你只能从低向高提,而不能从高相抵转
回复 使用道具 举报
关于s+=1和s=s+1首先
short s =1 ; s = s + 1;这句话肯定是错误的,而 s+=1;却是对的,首先声明的s是属于short短整形,在s=s+1中后面一段s+1里面1属于int型s就会有一个自动转换变成1所述的的int型然后s+1两个int类型的相加就得到int型在赋值给=前面的s型的时候前面属于short类型,所以int型不能直接赋值给short型出现错误容易丢失精度简单的说就是属于两部运算先算的是s+1然后在赋值给s。而在后面s+=1的时候他的原理是s=s+1是把后面s+1的值赋值给前面的s,而赋值之前s+1属于计算机内部运算直接提升,并非先算s+1,而是直接属于把s+1的值赋值给s在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是 s+=1 s = (s的类型)(s+1)
当然类型转换可以从小到大自动转,即byte->short->int->long小的数据类型像大的类型转换!
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马