StringBuffer
在阅读 StringBuffer 请先点此阅读其父类 AbstractStringBuilder 的源码,便于理解。因为 StringBuffer 的很多方法是直接调用父类方法实现的。
-
StringBuffer 继承自 AbstractStringBuilder ,实现了 Serializable、Comparable、CharSequence 接口。
-
StringBuffer 被 final 修饰,表示不可以被继承。
-
StringBuffer 是线程安全的可变字符序列,但效率低。 StringBuilder 是线程不安全的可变字符序列,但效率高。
private transient String toStringCache;
toString 方法返回的最后一个值的缓存。每当修改 StringBuffer 字符串时清除。
注意:每次对字符串进行更新操作前,都应将 toStringCache 置为 null 。保证调用 toString 方法返回的字符串是最新的。
构造方法:
StringBuffer()
默认初始化字符串容量为16。调用父类构造方法 AbstractStringBuilder(int capacity) 实现。
关于注解 @HotSpotIntrinsicCandidate 点此查看详细介绍。
@HotSpotIntrinsicCandidate
public StringBuffer() {
super(16);
}
StringBuffer(int)
创建一个初始化容量为 capacity 的空字符序列,调用父类构造方法 AbstractStringBuilder(int capacity) 实现。
public StringBuffer(int capacity) {
super(capacity);
}