为什么单个Java char变量可以表示超过65535个字符?

时间:2015-02-04 07:11:58

标签: java unicode char

Java中的char是2个字节,您可以通过运行以下代码来获取其范围:

System.out.println((Character.MIN_VALUE + 0) + "<char<" + (Character.MAX_VALUE + 0));

它是0~65535

但我很困惑,我们可以将整数值(&gt; 65535,如70000)转换为char,并将其打印出来:

   char testChar = (char) 70000;
    char testChar2 = (char) 280388456;
    System.out.println(testChar);   //prints ᅰ
    System.out.println(testChar2);  //prints 捨

但为什么?

1 个答案:

答案 0 :(得分:2)

280388456字面值超出char范围,而char类型的上下文实际上是25448(因为280388456 % 65536 = 25448)。这似乎是索引。其他角色也是如此。