黑马程序员技术交流社区
标题:
赋值问题
[打印本页]
作者:
程宁宁
时间:
2013-3-27 12:06
标题:
赋值问题
本帖最后由 程宁宁 于 2013-3-29 21:18 编辑
byte b=127;为什么正确 ?按常理来说,127默认是int型,不会自动转换到byte型的,需要强转的啊????????
作者:
胡志超
时间:
2013-3-27 12:13
127是byte类型的上限,是可以这样赋值的,但是如果byte b=127;中b参与了算术运算,就会自动提升为int类型
作者:
itserious
时间:
2013-3-27 12:13
byte b=127;为什么正确 ?按常理来说,127默认是int型,不会自动转换到byte型的,需要强转的啊????????
回答:这是int的类型数据的一个小特点。
当你的 int 值,在一个byte 的泛围内能装下,JVM就只会在内存中开辟一个byte大小的空间来装这个int值。
这是为了节约内存。也就是说当你的int值在-128~127内的话,就会自动转换成byte类型,
所以就可以用byte来接收int了。
作者:
罗胜华
时间:
2013-3-27 12:25
这样跟你说吧
byte在内存中占1个字节 一个字节是8位,所以byte类型的变量取值范围是-128-127
所以说: byte b = 127;是不需要强转的
还有int整形是4个字节 站32为,如果你要把一个整形强转成byte,那么就相当于去掉整形前面26位,只保留后面8位。
作者:
赵喜平
时间:
2013-3-27 15:51
byte是数值型的一种,其取值范围是 -128——127 byte b=127是byte类型的范围之内,其中没有强转的问题,数值型的数据默认是整型是没错的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2