StringBuffer和StringBuilder都继承自AbstractStringBuilder,而AbstractStringBuilder和String都实现了CharSequence接口。
StringBuilder是非线程安全的,StringBuffer是线程安全的,很多方法都用synchronized修饰,所以效率较低。
StringBuffer的append方法
public synchronized StringBuffer append(String str) { // 同步
super.append(str); // 调用父类AbstractStringBuilder的append方法
return this;
}
StringBuilder的append方法
public StringBuilder append(String str) {
super.append(str); // 调用父类AbstractStringBuilder的append方法
return this;
}
StringBuffer的构造函数
/**
* Constructs a string buffer with no characters in it and an
* initial capacity of 16 characters.
*/
public StringBuffer() {
super(16); // 默认容量是16个字符
}
StringBuilder的构造函数
/**
* Constructs a string builder with no characters in it and an
* initial capacity of 16 characters.
*/
public StringBuilder() {
super(16); // 同样是16个字符
}