1

据我所知,当 JRE 执行 Java 应用程序时,该字符串在内部将被视为 USC2 字节数组。在wikipedia中,可以找到以下内容。

Java 最初使用 UCS-2,并在 J2SE 5.0 中添加了 UTF-16 补充字符支持。

随着 Java (Java 7) 的新发布版本,它的内部字符编码是什么?
Java有没有可能在内部开始使用UCS-4?

4

2 回答 2

4

Java 7 在内部仍然使用 UTF-16(阅读 Charset Javadoc 的最后一部分),并且不太可能更改为 UCS-4。我会给你两个理由:

  1. 从 UCS-2=>UCS-4 更改很可能意味着他们必须将 char 原语从 16 位类型更改为 32 位类型。回顾过去 Sun/Oracle 对向后兼容性的重视程度,这样的变化不太可能发生。
  2. 对于大多数用例,UCS-4 比 UTF-16 编码的字符串占用更多的内存。
于 2012-11-27T03:45:53.980 回答
0

问:据我所知,当 JRE 执行 Java 应用程序时,字符串将被视为(16 位 Unicode)字节数组

答:是的

问:随着Java(Java 7)的新发布版本,它的内部字符编码是什么?

答:一样

问:Java 内部是否有可能开始使用 UCS-4?

A:没听说过类似的

但是,您可以使用“代码点”在 Java 5 及更高版本中实现 UTF-32 字符:

于 2012-11-27T03:47:04.930 回答