首先明确这几种数据类的取值范围:
byte: -128~127
short: -2^15~2^15-1
char: 0~65536
int: -2^31~2^31-1
请看以下代码:
byte b = 100;
short s = b; //正确,因为byte的取值范围在short取值范围之内。
char c = b; //错误,因为byte的取值范围不完全在char的取值范围内。
c = s; //错误,因为short的取值范围不完全在char的取值范围内。
int x = b; //正确,因为byte的取值范围在int取值范围之内。
x = s ; //正确,因为short的取值范围在int取值范围之内。
x = c; //正确,因为char的取值范围在int取值范围之内。