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

相关文章