public class test {
public static void main(String[] args) {
StringBuffer str = new StringBuffer();
str.append("12345");
System.out.println(str.capacity()); //16
System.out.println(str.length()); //5
str.append("67890123456");
System.out.println(str.capacity()); //16
System.out.println(str.length()); //16
str.append("1");
System.out.println(str.capacity()); //34
System.out.println(str.length()); //17
str = new StringBuffer("123");
System.out.println(str.capacity()); //19
System.out.println(str.length()); //3
}
}
StringBuffer擴容的問題
先看代碼第5行,StringBuffer str = new StringBuffer();//創建一個StringBuffer對象,默認大小爲16
當append()字符串小於16的時候,調用str.capacity()方法查看容量大小爲16,str.length()大小爲你添加字符串的長度
當你添加的字符串超過16的時候,StringBuffer會自動擴容到原來容量的2倍+2
str = new StringBuffer("123");
此時StringBuffer的容量不再是擴容2倍+2,而是直接由原來容量(即默認容量)+字符串長度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.