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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo
{
        public static void main(String[] args)
        {
                byte b1 = 3;
                byte b2 = 4;
                byte b3 = b1 + b2;
                byte b4 = 3 + 4;
                System.out.println(b3);
                System.out.println(b4);
       }
}
该代码有问题吗?如果有问题是在哪一行有问题?如何解决呢?同学们知道吗

14 个回复

倒序浏览
byte b3 = b1 +b2不对吧,等号左边是byte,右边是int
回复 使用道具 举报
BG6FVG 发表于 2015-8-27 23:25
byte b3 = b1 +b2不对吧,等号左边是byte,右边是int

右边是int类型,赋值给byte类型,需要自己动手进行强制转换。正确的写法应该是byte b3 = (byte)(b1+b2).这道是面试很容易出错的题目哦。
回复 使用道具 举报
这个题目我上课老师讲过,刚开始的时候很不理解,分享的很好啊。
回复 使用道具 举报
丶骑毛驴 发表于 2015-8-27 23:27
右边是int类型,赋值给byte类型,需要自己动手进行强制转换。正确的写法应该是byte b3 = (byte)(b1+b2). ...

是的 你学的很好呀
回复 使用道具 举报
在java中,类型为byte,short,char类型的变量在运算的时候会自动转为int类型
回复 使用道具 举报
BG6FVG 中级黑马 2015-8-28 22:55:50
7#
丶骑毛驴 发表于 2015-8-27 23:27
右边是int类型,赋值给byte类型,需要自己动手进行强制转换。正确的写法应该是byte b3 = (byte)(b1+b2). ...

是的 谢谢
回复 使用道具 举报
6666666666,挺不错的一个题目的在论坛看到三次了
回复 使用道具 举报
谢谢分享面试题
回复 使用道具 举报
byte是最小的单位,系统默认的是int,在运算中系统自动将b1,b2的值转换为int类型,运算出来的值
                也是int,大单位无法直接存入小单位中 ;
回复 使用道具 举报
zzq18217362451 来自手机 中级黑马 2015-8-28 23:57:43
11#
很容易犯错的题,第一次我就错了,值得分享
回复 使用道具 举报
zzq18217362451 发表于 2015-8-28 23:57
很容易犯错的题,第一次我就错了,值得分享

智强威武啊。
回复 使用道具 举报
看过好多次了
回复 使用道具 举报
昨天刚学的 要注意小细节
回复 使用道具 举报
容易出错的类型转换,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马