Java: 为什么定义一个字节型变量 byte i=3,而不是 byte i=3b ???????

sshjava1 2016-06-14 11:01:58
对于一个整数,不是默认为int型嘛,那么 byte i=3 中的3也是int型的嘛,int型不能自动转换为byte型的嘛,所以这样赋值是有问题的嘛。
...全文
399 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangxheng 2016-06-14
  • 打赏
  • 举报
回复
1.整型 类型 存储需求 bit数 取值范围 byte 1字节 1*8 (-2的31次方到2的31次方-1) short 2字节 2*8 -32768~32767 int 4字节 4*8 (-2的63次方到2的63次方-1) long 8字节 8*8 -128~127
  • 打赏
  • 举报
回复
谁说的默认是int? 他会自动转换成定义的类型。如果转不成就编译不通过。除非强制转换byte i=(byte)1233;
qq_15915835 2016-06-14
  • 打赏
  • 举报
回复
不为啥,java语法就是这样 谁说3就必须是整形了 byte 取值范围 -128—127
狂暴的小猴儿 2016-06-14
  • 打赏
  • 举报
回复
3 这个常量在java 中是会被当作int类型来处理 一般情况下也只支持不损失精度的转型 但是在赋值操作的时候会有例外 ,可以参考一下 JLS http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.2 关于 Assignment Conversion 的东西
里头说了 对于short byte char 会发生 narrowing primitive conversion 这种窄式转换 先当作是编译器的支持吧 具体啥机制我也不知道

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧