Java 9 中的紧凑字符串是什么?
javaobject oriented programmingprogramming更新于 2025/9/10 15:08:17
自 Java 9 以来,JVM 使用名为紧凑字符串优化字符串。字符串可以表示为 byte[] 数组,而不是 char[]数组。我们可以使用 UTF-16 或 Latin-1 来为每个字符生成一个或两个字节。如果 JVM 检测到字符串仅包含ISO-8859-1/Latin-1字符,则字符串在内部使用每个字符一个字节。
在创建字符串时会检测字符串是否可以用紧凑字符串表示。此功能默认启用,可使用 -XX:-CompactStrings 关闭。它不会恢复为 char[] 实现,并将所有字符串存储为 UTF-16。
// 在 Java 8 中
public class String {
private final char[] value; // 将字符存储在字符串中
---------
}
// 在 Java 9 中
public class String {
private final byte[] value; // 将字符存储在字符串中
private final byte coder; // 一个标志,用于指示此字符串是使用每个字符 1 个字节还是每个字符 2 个字节
---------
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

