黑马程序员技术交流社区
标题:
类型转换问题
[打印本页]
作者:
梁秋瑜
时间:
2013-5-28 23:56
标题:
类型转换问题
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
作者:
1844611785
时间:
2013-5-28 23:59
b=3+4,是编译出问题的,3,4是int型的,而b 是byte型,需要强转
作者:
风爽
时间:
2013-5-29 00:06
b=3+4;编译不会通过,3和4都是int型的,要强转。b=(byte)(3+4);
作者:
廖志强
时间:
2013-5-29 09:03
---------- javac ----------
Test1.java:6: 错误: 可能损失精度
b=b1+b2;
^
需要: byte
找到: int
1 个错误
输出完成 (耗时 1 秒) - 正常终止
其实是b = (byte)b1+b2
而b = 3+4,编译是可以通过的
作者:
廖志强
时间:
2013-5-29 09:04
大家可以编译下,我编译了下,虽然是个小问题
作者:
小石头39910
时间:
2013-5-29 09:39
b=b1+b2编译出错啊,因为你定义的b是byte类型,b1和b2是一个变量你给他们赋值是3和4所以java虚拟机会把b1和b2的类型提升为int型,所以你要做一个动作那就是传说中的b=(byte)(b1+b2);
b=3+4是可以通过的,因为你上面已经指定byte b1=3,b2=4
作者:
风爽
时间:
2013-5-29 12:48
风爽 发表于 2013-5-29 00:06
b=3+4;编译不会通过,3和4都是int型的,要强转。b=(byte)(3+4);
哦,看错了
作者:
殇_心。
时间:
2013-5-29 16:35
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2