之前的博文介绍了AbstractStringBuilder和StringBuffer,这一篇文章给String系列收个尾。老规矩,先上源码:
public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence{
/** use serialVersionUID for interoperability */
static final long serialVersionUID = 4383685877147921099L;
public StringBuilder() {
super(16);
}
public StringBuilder(int capacity) {
super(capacity);
}
public StringBuilder(String str) {
super(str.length() + 16);
append(str);
}
public StringBuilder(CharSequence seq) {
this(seq.length() + 16);
append(seq);
}
}
看到没有,类的声明和StringBuffer几乎一样的套路,只是少了char[] toStringCache属性。因为StringBuilder不关心线程安全嘛,所以就不需要这个属性了。以下是toString()方法:
@Override
public String toString() {
// Create a copy, don't share the array
return new String(value, 0, count);
}
需要注意一下,返回的是StringBuilder内部char数组的一个复制String对象,而不是该char数组本身组成的String对象。其他的方法就很简单了,super. 就完事了,就不多做阐述了。