20

Java 9 底层是如何实现字符串的?每个字符是存储为一个字节还是两个字节?

4

1 回答 1

25

因为字符串的大多数用法是 Latin-1 并且只需要一个字节,Java-9 的字符串将被更新为在底层实现为带有编码标志字段的字节数组,以说明它是否是字节数组。如果字符不是 Latin-1 并且需要超过一个字节,它将被存储为 UTF-16 字符数组(每个字符 2 个字节)和标志。见JEP 254

于 2016-07-05T21:51:12.040 回答