-
char
类型是一个16位的Unicode字符,而int
类型是一个32位的有符号整数。因为char
类型的取值范围是0到65535,这是一个完全容纳于int
类型范围内的值,所以从char
到int
的转换是隐式的,编译器可以自动处理这种类型转换。然而,
short
类型是一个16位的有符号整数,它的取值范围是-32768到32767,而char
类型的取值范围是0到65535。尽管两者的位数相同,但它们的取值范围不完全重叠,因此char
到short
的转换被视为不安全的转换,需要显式地进行类型转换。