我搜索了Java中String的内部表示,但是我得到的两种材料看起来可靠但不一致。一种是:http://www.codeguru.com/cpp/misc/misc/multi-lingualsupport/article...
我搜索了 Java 中 String 的内部表示,但得到的结果有两种,看起来可靠但不一致。
一是:
http://www.codeguru.com/cpp/misc/misc/multi-lingualsupport/article.php/c10451
上面写着:
Java 使用 UTF-16 作为内部文本表示,并支持对 UTF-8 进行非标准修改以进行字符串序列化。
另一个是:
http://en.wikipedia.org/wiki/UTF-8#Modified_UTF-8
上面写着:
Tcl 也使用与 Java 相同的修改后的 UTF-8[25] 作为 Unicode 数据的内部表示,但对外部数据使用严格的 CESU-8。
修改后的 UTF-8?还是 UTF-16?哪一个是正确的?Java 在内存中为一个字符占用多少字节?
请让我知道哪一个是正确的以及它使用了多少字节。