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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程宁宁 中级黑马   /  2013-3-27 12:06  /  1636 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程宁宁 于 2013-3-29 21:18 编辑

byte b=127;为什么正确   ?按常理来说,127默认是int型,不会自动转换到byte型的,需要强转的啊????????

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-27 19:48

4 个回复

倒序浏览
127是byte类型的上限,是可以这样赋值的,但是如果byte b=127;中b参与了算术运算,就会自动提升为int类型

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
byte b=127;为什么正确   ?按常理来说,127默认是int型,不会自动转换到byte型的,需要强转的啊????????

回答:这是int的类型数据的一个小特点。
当你的 int 值,在一个byte 的泛围内能装下,JVM就只会在内存中开辟一个byte大小的空间来装这个int值。
这是为了节约内存。也就是说当你的int值在-128~127内的话,就会自动转换成byte类型,
所以就可以用byte来接收int了。
回复 使用道具 举报
这样跟你说吧
byte在内存中占1个字节  一个字节是8位,所以byte类型的变量取值范围是-128-127
所以说: byte b = 127;是不需要强转的
还有int整形是4个字节 站32为,如果你要把一个整形强转成byte,那么就相当于去掉整形前面26位,只保留后面8位。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
byte是数值型的一种,其取值范围是 -128——127 byte b=127是byte类型的范围之内,其中没有强转的问题,数值型的数据默认是整型是没错的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马