黑马程序员技术交流社区

标题: byte和int转化问题 [打印本页]

作者: sunny~    时间: 2014-8-3 23:14
标题: byte和int转化问题
byte b= 3;    3默认为int类型     貌似int比byte高啊为什么这句是自动类型转化    不是高转低则要强转。不应该这样写吗byte b= (byte)3;
作者: dreamseekerkun    时间: 2014-8-3 23:23
右边只有运算时,才会有转换,这是赋值啊,而且3也在Byte范围内。
作者: liqi    时间: 2014-8-3 23:29
这是在声明
作者: fantacyleo    时间: 2014-8-3 23:36
http://bbs.itheima.com/thread-127149-1-1.html
作者: D.reamJA    时间: 2014-8-3 23:39
byte b=3;  3是int型,byte在接收的时候会把int前三个全为0的字节砍掉。如果前三个字节有1,则会报错。



作者: chulangren2    时间: 2014-8-3 23:41
强制类型转换吧,3在byte的范围之内。
作者: 北纬30º的眷恋    时间: 2014-8-3 23:54
3是常量,为int类型,会被Java自动强制转换成byte类型
作者: zhuohong_xiao    时间: 2014-8-3 23:57
基础课程没有听好。由于定义的默认值是int类型,我们都会认为 byte b = 3;是一种强制转换。需要在前面加byte。变成byte b = (byte)3;这个是一种误解,3是int类型的数也是byte类型的数。只要数值没有超过127,就可以直接赋值。是属于自动转换。这是我的理解。希望对你有帮助。
作者: 怀念黑海岸    时间: 2014-8-4 00:05
byte b=3;这句话的功能有两个,但是是一步完成的,将3赋值给b,同事自动完成转换工作。
但是b=b+3;的话就会报错,他是两步工作,先运行x+5,再将结果赋值给x。
而b+=3;这句话的意义和第一句一样,都是一步完成的,至于他为什么这样子完成的那我就不知道了,这是我当初看视频时做的笔记。
作者: 碎流    时间: 2014-8-4 00:18
自动类型提升啊
作者: ______雨点ペ    时间: 2014-8-4 03:09
不需要写成(byte )3.因为Byte范围是  负128 到 127之间,3在Byte的范围之内,所以不需强转。如果超过了这个范围就需要强转。
作者: sunny~    时间: 2014-8-4 11:35
zhuohong_xiao 发表于 2014-8-3 23:57
基础课程没有听好。由于定义的默认值是int类型,我们都会认为 byte b = 3;是一种强制转换。需要在前面加by ...

强制类型转化  可以自动实现?
作者: sunny~    时间: 2014-8-4 11:37
碎流 发表于 2014-8-4 00:18
自动类型提升啊

这是提升?   这不是下降吗     int   降为byte
作者: sunny~    时间: 2014-8-4 11:41
zhuohong_xiao 发表于 2014-8-3 23:57
基础课程没有听好。由于定义的默认值是int类型,我们都会认为 byte b = 3;是一种强制转换。需要在前面加by ...

long l = 3;  这个是自动类型转化       也就是int的3提升为long的3,   往更小的字节存不是要强制转换吗
作者: 我行我SHOW‰    时间: 2014-8-4 14:07
一楼正解~~~~~~~~~~
作者: 文盲庄稼汉    时间: 2014-8-4 15:06
不用。这知识普通的赋值运算。如果程序是这样的:byte b = 3+2; 这样就该强制转换了,因为右边有运算,运算完了是int类型,而你左边的变量b是int的。这时要强制转换。楼主的程序是赋值运算,右边不涉及运算,直接赋值就ok
作者: huanhuan    时间: 2014-8-4 16:50
这是一个赋值问题啊,把3赋给一个byte型!
作者: zhuohong_xiao    时间: 2014-8-4 20:46
sunny~ 发表于 2014-8-4 11:35
强制类型转化  可以自动实现?

这只是一个简单的赋值运算。自动是我自己的一种理解。估计这么纠结下去都凌乱了啊。
作者: zhangfan    时间: 2015-11-30 22:15
这只是定义b而已  并且3也是在byte的范围类    所以这样写是没问题的   不存在强转关系啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2