据我所知,当JRE执行一个Java应用程序时, 该字符串在内部将被视为 USC2 字节数组。 在 wikipedia ,可以找到如下内容。
Java originally used UCS-2, and added UTF-16 supplementary character support in J2SE 5.0.
随着 Java 的新发布版本(Java 7),
它的内部字符编码是什么?
Java 是否有可能在内部开始使用 UCS-4?
最佳答案
Java 7 仍然在内部使用 UTF-16 ( Read the last section of the Charset Javadoc ),并且不太可能更改为 UCS-4。我会给你两个理由:
- 从 UCS-2=>UCS-4 进行更改很可能意味着他们必须将 char 原语从 16 位类型更改为 32 位类型。回顾过去 Sun/Oracle 对向后兼容性的重视程度,这样的改变是不太可能的。
- 在大多数情况下,UCS-4 比 UTF-16 编码的字符串占用更多内存。
关于java - Java 7 的内部字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13577049/