浏览 4138 次
锁定老帖子 主题:java里+号的运算结果默认是整型
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-09
最后修改:2009-12-27
{ public static void main(String[] args) { byte y=125; y = y+ (byte)5; System.out.println(y); } } 上面的代码无法通过。 y = y+ (byte)5; 改成 y+=(byte)5;就是好的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-09
在虚拟机内部byte都是用int来表示的。byte+byte结果就是int,你不强制转型,当然会报错。
+= 会把结果自动转型。 |
|
返回顶楼 | |
发表时间:2007-01-09
foxty 写道 在虚拟机内部byte都是用int来表示的。byte+byte结果就是int,你不强制转型,当然会报错。
+= 会把结果自动转型。 嗯,按照你说的,改了,试了一下。 y = (byte)(y+ (byte)5); int x = y+(byte)5; 都是好的。 也就是说,java默认是以int为运算结果类型。 平常不用byte,没注意到,以为是按低的来。 |
|
返回顶楼 | |
发表时间:2007-01-09
Thinking in Java里面有比较详细的论述
|
|
返回顶楼 | |
发表时间:2007-01-10
同学,以前的时候也没有注意这些
|
|
返回顶楼 | |
发表时间:2007-01-10
对操作符,Thinking in java只是简单的介绍,并没有深入到编译器具体实现去解释这些问题,这些还要看effective java, java puzzlers
|
|
返回顶楼 | |
发表时间:2007-01-10
leisure 写道 Thinking in Java里面有比较详细的论述
切,我就是看Thinking in java的,里面根本没有。 |
|
返回顶楼 | |