当前页面: 开发资料首页 → J2SE 专题 → 关于类型提升(byte->int)的一点疑惑
关于类型提升(byte->int)的一点疑惑
摘要: 关于类型提升(byte->int)的一点疑惑
byte b;
b=4;
b=b*5;//错误
b*=5;//正确
b=(byte)(b*5);//正确
System.out.println(b);
请问为啥b*=5正确呢,和b=b*5不是一个意思吗?
up, 我也有类似的问题:
http://community.csdn.net/Expert/TopicView1.asp?id=5141997
也请大家看看
b=b*5;//错误
这个错误是因为,在表达式中的常量5的类型是int的,所以b*5是进行int乘法,结果也是一个int的数,所以必须强制类型转换才行;
b*=5;//正确
这个正确是因为在这种缩写的表达式中,自动会把等式右边的常量5转换成等式左边的类型一致,所以是做byte乘法,所以是正确的;其它类似的b+=5;也是正确的