java基础:byte b1 = 100;

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

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亿,希望我的回答可以给帮助

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

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