当对字符串进行修改时,String每修改一次就会生成String对象,例如:
String str = "hello" ; // 此时在字符串常量池中生成对象地址为001存储hello ;
str += "word" ; // 此时首先在字符串常量池中生成对象地址为002存储word;然后再生成对象地址003存储"helloword";然后把str指向003地址
从上述代码可以看出,当我们频繁对字符串就行修改时,就会造成内存浪费,为此,StringBuufer和StringBuilder类能够实现多次修改并且不产生新的未使用对象。
继承关系
StringBuffer与StringBuilder的方法最大不同在于StringBuffer是线程安全的(能同步访问),由于StringBuilder相较于StringBuffer有速度优势,多数情况下建议使用StringBuilder类。
构造方法
- public StringBuilder()
构造一个没有字符的字符串生成器,并构造了16个字符的初始容量。 - public StringBuilder(int capacity)
构造一个字符串生成器没有字符和一个初始容量的 capacity参数指定。 - public StringBuilder(String str)
构造一个初始化为指定字符串的内容的字符串生成器。该字符串生成器的初始容量是 16加字符串的长度。
常用方法
1 public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
2 public StringBuffer reverse()
将此字符序列用其反转形式取代。
3 public delete(int start, int end)
移除此序列的子字符串中的字符。
4 public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。
5 insert(int offset, String str)
将 str 参数的字符串插入此序列中。
6 replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。
以上就是StringBuilder日常使用,具体可以查询JDK1.8API的使用。