Java 7的内部字符编码



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

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

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

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

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

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

答:是的

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

答:相同

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

答:我没有听说过任何类似的事情

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

  • http://www.ibm.com/developerworks/java/library/j-unicode/

  • http://jcp.org/en/jsr/detail?id=204

最新更新