byte变量赋值的范围 java中的标识符有哪些

Java中给byte变量直接赋值可以自动转换,但为什么把int变量赋给byte变量需要强制转换,同样是int?因为编译器是智能的,字节范围内的整数编译周期不会报错但int变量的值即使属于字节范围,赋值给byte也会报错...