2 cai642343061 cai642343061 于 2016.04.26 07:53 提问

java基础:byte b1 = 100;

请问100是int类型吗?
然后如果是int,那么100赋值给b1为何不需要强制类型转换呢?

4个回答

jjfly999
jjfly999   2016.04.26 08:21
已采纳

int a = 100;这样定义时,100是int 类型

byte a =100;这样定义时,100是byte类型

double a =100,这样定义时,100是double类型

单单讨论100这个数值的时候,100什么类型也不是

强转类型只发生在a已经定义,如 int a = 100; byte b = (byte)a;

强转的时候可能会发生数值缺失byte类型只能是存0-255的数值,而int可以到达21亿,希望我的回答可以给帮助

cai642343061
cai642343061 谢谢,我想我大概能明白了
一年多之前 回复
qq_31886719
qq_31886719   2016.04.26 08:25

不是,
b1你声明了是byte类型,那这里的100就是byte类型的
而byte b2= b1+100,在这里的100默认是int类型的,会编译报错

cai642343061
cai642343061 谢谢你,不过我认为byte b2= b1+100会编译报错,是因为java虚拟机把b1和100都转换成了int类型;如果只是把100强转为byte还是会报错
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.26 08:01

java笔试100题(1-50)
java笔试100题(1-50)
java 1加到100
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

laotansuocai
laotansuocai   2016.04.26 09:25

生命是byte类型当然是byte类型。

cai642343061
cai642343061 那这样不是声明呢: byte b = 1; b = 100; 这个100呢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片