他们的相同点都是继承了AbstractStringBuilder类,所有方法基本相同,但是StringBuffer是线程安全的,方法前有synchronized关键字。他们的初始化大小都是16,扩容机制是新容量=(旧容量+1)×2
public StringBuilder() {
super(16);
}public StringBuffer() {
super(16);
}
void expandCapacity(int minimumCapacity) {
int newCapacity = (value.length + 1) * 2;
if (newCapacity < 0) {
newCapacity = Integer.MAX_VALUE;
} else if (minimumCapacity > newCapacity) {
newCapacity = minimumCapacity;
}
value = Arrays.copyOf(value, newCapacity);
}
StringBuffer与StringBuilder详解
本文对比分析了StringBuffer与StringBuilder类的区别与联系,重点讲解了它们的线程安全性及扩容机制,强调StringBuffer通过synchronized关键字确保线程安全。
27万+

被折叠的 条评论
为什么被折叠?



