Java 9:紧凑字符串(Compact String)

时间:2021-12-20 16:25:16

目前Java的String实现是把字符串存放在一个char类型的数组里,char占用两个字节(16位)。但是String作为很常用的类,在很多时候它只包含Latin-1里的字符,这些字符只需要一个字节(8位)存储,所以在这种情况下很容易造成空间的浪费。

Java 9引进紧凑字符串来解决这个问题。

  1. 使用UTF-16字符数组,或者是1字节的数组加上一个编码标识符来存储字符串。如果字符串的内容都是ISO-8859-1/Latin-1字符,则使用ISO-8859-1/Latin-1编码存储字符串,否则使用UTF-16编码存储数组。
  2. 这些只是实现的修改,String的接口没有任何修改。
  3. 紧凑字符串集成在JDK 9里,默认启动。