Java 9中压缩字符串和压缩字符串之间的区别?

Java 9中 引入了紧凑字符串,以取代Java 6的压缩 字符串。它的实现使用byte []数组而不是char []数组,并且引入了新的字段编码器以识别它是LATIN1 格式还是UTF16 格式,而Java 6 中引入了可用于每个字符一个字节的byte []数组的压缩 字符串。 ,并继续使用char []数组每个字符两个字节,之前可以使用-XX:+ UseCompressedStrings来打开它。

与压缩字符串不同,紧凑型字符串不需要解重新打包。因此,紧凑字符串在运行时提供了更好的性能。

Java 6默认情况下不启用压缩字符串,需要使用以下命令显式设置压缩 字符串 

XX:+UseCompressedStrings


默认情况下,使用以下命令在Java 9中启用压缩字符串 

+XX:-CompactStrings