StringBuffer是线程同步的。适用于字符串的拼接,同步,效率低。
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
- toStringCache字段是为了作缓存的。 缓存的最后toString的值的缓存。在修改StringBuffer时清除 ,个人认为是为了优化效率的
transient标识不会被实例化
/**
* A cache of the last value returned by toString. Cleared
* whenever the StringBuffer is modified.
*/
private transient char[] toStringCache;
- 构造方法和StringBuilder基本一样
- 剩下的大部分方法与StringBuilder一样,都是调用父类的方法,只是加了synchronized,所以是线程安全的。