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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沐阳6011 中级黑马   /  2014-5-24 18:01  /  4114 人查看  /  24 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 沐阳6011 于 2014-5-25 20:53 编辑

:loveliness::loveliness:若定义一个变量 byte  a=4;  a=a+4;   编译时会提示出错,具体的原因是什么呢,如果面试时,面试官提问,自己也组织不太好语言,是因为基础不扎实的缘故吗?:dizzy:还有a=a+4  与  a+=4 的区别?感觉自己可能基础还是不太扎实,求解答:dizzy::dizzy::#

24 个回复

正序浏览
学习学习!
回复 使用道具 举报
学习学习!
回复 使用道具 举报
学习学习!
回复 使用道具 举报
首先 byte a=4 ,  它是把默认int数据类型4赋值给byte类型 a ,属于自动转型。
其次 a=a+4,      中 a是变量, 一个变量a 加上4 再赋值给变量a,这是不对的,改正 :byte a=(byte)(a+4) ;这是强制转换。
而a+=4,    等同于a=byte(a+4) ,不过a+4 在JDK中 会自动  进行强制转换。
回复 使用道具 举报
shi980088 发表于 2014-5-25 21:30
还好吧,认真回答问题就好了

行,这点我得向你学习,最近一个多月还是好好打基础了,哥们一起加油吧!:D
回复 使用道具 举报
沐阳6011 发表于 2014-5-25 21:28
我也得抓紧了,好好复习下,好好写写技术博客,感觉着技术分不好拿啊

还好吧,认真回答问题就好了
回复 使用道具 举报
shi980088 发表于 2014-5-25 21:09
嗯,我基础测试还没答题呢,我回答问题吖

我也得抓紧了,好好复习下,好好写写技术博客,感觉着技术分不好拿啊
回复 使用道具 举报
沐阳6011 发表于 2014-5-25 20:52
什么?基础测试吗?那你技术分是怎么赚的?

嗯,我基础测试还没答题呢,我回答问题吖
回复 使用道具 举报

什么?基础测试吗?那你技术分是怎么赚的?:funk:
回复 使用道具 举报
李彦来 发表于 2014-5-25 08:18
毕向东老师的视频里有啊,第二天的视频08号视频,类型转换

听了几遍还是有点儿蒙,不过回头自己琢磨琢磨就明白了,嘿嘿
回复 使用道具 举报
沐阳6011 发表于 2014-5-25 16:04
是啊,刚开始学呢。你解答的确实很好了,我有点儿望尘莫及啊,就算我自己理的清思路,可能也不会答的这么 ...

:funk:我还没过测试呢
回复 使用道具 举报
shi980088 发表于 2014-5-25 15:51
这么夸我我会不好意思的,你自学的java?

是啊,刚开始学呢。你解答的确实很好了,我有点儿望尘莫及啊,就算我自己理的清思路,可能也不会答的这么清楚,以后很多问题还希望你多多 指教了,我刚过了基础测试,现在开始写博客了
回复 使用道具 举报
沐阳6011 发表于 2014-5-25 15:48
也不是说捷径,在这个贴回复的人,很多人可能都懂我问的这个问题,但是像你这样回答的这么详细的没有几个 ...

:#这么夸我我会不好意思的,你自学的java?
回复 使用道具 举报

也不是说捷径,在这个贴回复的人,很多人可能都懂我问的这个问题,但是像你这样回答的这么详细的没有几个。这就涉及到基础和关键词,还有表达能力的问题,现在我虽然懂了,但是也不会像你这样表达的这么完善。
回复 使用道具 举报
沐阳6011 发表于 2014-5-25 15:31
哥们你解释的很详细,很多知识点都涉及到了,非常清晰。谢谢你的回答。但是我想要可以在咱们论坛里解答问 ...

多学多练没捷径
回复 使用道具 举报
More 发表于 2014-5-25 08:28
强制类型转换存在损失精度的问题

恩,是的,我看了几遍才整明白的:lol
回复 使用道具 举报
shi980088 发表于 2014-5-24 23:39
我一点一点给你解毒,首先是第一个代码byte  a=4; 在java里所以的变量都有数据类型,这里的这句代码等号左 ...

哥们你解释的很详细,很多知识点都涉及到了,非常清晰。谢谢你的回答。但是我想要可以在咱们论坛里解答问题,像你这么详细,基础怎么能打扎实呢,现在我有点感觉自己基础不太扎实,每天做笔记吗?或者说您有什么自己的方法推荐呢?
回复 使用道具 举报
Dark_Horse 发表于 2014-5-24 21:25
a=a+4运算结果是整型,需要强制类型转换为bytel类型a=(byte) ((byte)a+4);这样会损失精度
默认转换是:容量 ...

谢谢你,我会再好好努力的
回复 使用道具 举报
塔罗 中级黑马 2014-5-25 08:57:02
7#
在用变量进行计算时,编译的时候像byte、char、等类型的数据会进行类型自动转成 int类型。int类型+byte类的数据时就会得到一个int类型的数据。所以编译会报错。 至于 b+=4; 相当于b=(byte)(b+4). 强制类型转化为byte所以不编译的时候不会报错。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马