字符串(1)
String
--Java中使用频率最高的类
--是一个不可变对象,加减操作性能较差
--以下方法需要牢记:charAt, concat, contains, endsWith, equals, equalsIgnoreCase, hashCode, indexOf, length
matches, replace, replaceAll, split, startsWith, subString, trim, valueOf
--查看StringTest.java
正则表达式,regular expression,又名规则表达式,用来检索、替换那些符合某个模式(规则)的文本。
字符串(2):
--可变字符串
StringBuffer(字符串加减,同步,性能好)
StringBuilder(字符串加减,不同步,性能更好)
--StringBuffer / StringBuilder:方法一样,区别在同步
append / insert / delete / replace / substring
length 字符串实际大小,capacity 字符串占用空间大小
trimToSize() 去除空隙,将字符串存储压缩到实际大小
如有大量append,事先预估大小,再调用相应构造函数
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 字符串加减,不同步,性能更好