char实际上是Java中的无符号16位整数类型。
与其他整数类型一样,您可以执行从整数常量到任何整数类型的赋值转换,只要它在适当的范围内即可。这就是为什么
byte b = 10;
也可以。
从JLS,第5.2节:
此外,如果该表达式是类型为byte,short,char或int的常量表达式(第15.28节):
- 如果变量的类型为byte,short或char,并且常量表达式的值可表示为变量的类型,则可以使用缩窄的原始转换。
- 如果变量的类型为:可以使用紧缩原始转换后跟装箱转换。
- 字节和常量表达式的值可以在类型字节中表示。
- 短,常量表达式的值可以用短类型表示。
- 字符和常量表达式的值可以用char类型表示。



