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

目前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里,默认启动。

版权声明:著作权归作者所有。

相关推荐

Java 8/9使用Stream获取字符出现在字符串的索引列表

需求是这样的:输入一个字符串和一个字符,返回此字符出现在字符串里的所有索引。可以使用for循环迭代字符串可以实现此需求。考虑了下java8和java9的实现方案。java 8使用IntStream的实现方案public static List<Integer> getIndexes(String s, char c)

JavaScript(ES6)判断字符串是否包含子字符串的方法

ES6 includesES6的字符串新增了includes方法,我们可以用它来判断是否包含子字符串。str.includes(searchString[, position]) searchString:查询的子字符串position:可选,开始搜索的位置,默认为0'Blue Whale'.includes('Blue'); // returns

Kotlin:基本类型 - 字符串

Kotlin字符串使用String表示类型,为不可变类型。字符串表示字符串有两种表示方式:单行和多行。 单行单行使用双引号把内容括起来。val s = “Hello,World” 如果需要在单行里表示换行的字符串需要对换行符转义val s = “Hello, World \n” 多行多行用来表示原始的字符串,

TypeScript:字符串转换为数字

在TypeScript,String转换为Number有以下方式:Number构造函数(推荐)let n = Number('1234') // 1234 let nan = Number('abcd') // NaN +号操作符let n = +'1234'