StringBuffer和StringBuilder的區別與聯繫(源碼級)

他們的相同點都是繼承了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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章