Java 9 中的紧凑字符串和压缩字符串有什么区别?
javaobject oriented programmingprogramming
紧凑字符串已在 Java 9 中引入,以取代 Java 6 的 压缩 字符串。其实现使用 byte[] 数组而不是 char[] 数组,并且引入了新的字段 coder 来识别它是 LATIN1 还是 UTF16 格式,而 Java 6 中引入了 压缩 字符串 ,可以使用 byte[] 数组表示每个字符一个字节,并继续使用 char[] 数组表示每个字符两个字节,之前可以使用 -XX: + UseCompressedStrings 来启用它。
与压缩字符串不同,压缩字符串不需要解包或重新打包。因此,紧凑字符串在运行时可提供更好的性能。
压缩字符串在 Java 6 中默认不启用,需要使用以下命令明确设置
XX:+UseCompressedStrings
压缩字符串在 Java 9 中默认启用,使用以下命令
+XX:-CompactStrings