第八章 Java常用类 第三节 字符串相关类

字符串(1)

String

--Java中使用频率最高的类

--是一个不可变对象,加减操作性能较差

--以下方法需要牢记:charAt, concat, contains, endsWith, equals, equalsIgnoreCase, hashCode, indexOf, length

                                   matches, replace, replaceAll, split, startsWith, subString, trim, valueOf

--查看StringTest.java

第八章 Java常用类 第三节 字符串相关类

          第八章 Java常用类 第三节 字符串相关类

第八章 Java常用类 第三节 字符串相关类

正则表达式,regular  expression,又名规则表达式,用来检索、替换那些符合某个模式(规则)的文本。

第八章 Java常用类 第三节 字符串相关类

字符串(2):

--可变字符串

StringBuffer(字符串加减,同步,性能好)

StringBuilder(字符串加减,不同步,性能更好)

--StringBuffer / StringBuilder:方法一样,区别在同步

append / insert / delete / replace / substring

length 字符串实际大小,capacity 字符串占用空间大小

trimToSize() 去除空隙,将字符串存储压缩到实际大小

如有大量append,事先预估大小,再调用相应构造函数

第八章 Java常用类 第三节 字符串相关类

第八章 Java常用类 第三节 字符串相关类

第八章 Java常用类 第三节 字符串相关类

第八章 Java常用类 第三节 字符串相关类

第八章 Java常用类 第三节 字符串相关类

第八章 Java常用类 第三节 字符串相关类

StringBuffer预留的空间将为频繁字符串增加操作提高性能。

sb2.trimToSize()函数将多余的空间压缩一下,使得sb2.length()与sb2.capacity()相等。

总结一下StringBuffer的capacity扩大策略:

capacity的初始大小为16 + 初始化字符串长度;然后一直append,当当append后的的length大于当前的capacity时,capacity

就在前一次的capacity加上1,再乘以2倍。如果扩大后的capacity还是小于length,将直接扩大到length。

 

字符串(3):总结

String  不可变对象,只读

StringBuffer  字符串加减,同步,性能好

StringBuilder  字符串加减,不同步,性能更好