站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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;也是正确的



↑返回目录
前一篇: 初学Java就被难住了,Java怎么会是这样的? 问题二
后一篇: 正则表达式的问题,大虾帮帮忙,给出答案马上给分,