string容量JAVA_java的StringBuilder类的长度和容量有什么区别呢?
StringBuilder是使用char[] value;存儲數據的
@Override
public int length() {
return count;
}
AbstractStringBuilder(int capacity) {
value = new char[capacity];
}
長度表示的是字符的個數,容量表示的是可用于最新插入字符的存儲量。
例如:
StringBuilder sb=new StringBuilder();
sb.append("666");
sb.setLength(2);
System.out.println(sb.length());//追加了長度為3的字符串,count=count+3,所以結果為3
System.out.println(sb.capacity());//調用父類構造器super(16);即是new char[16],所以結果16
String s=sb.toString();
System.out.println(s);
public void setLength(int newLength) {
if (newLength < 0)
throw new StringIndexOutOfBoundsException(newLength);
ensureCapacityInternal(newLength);
if (count < newLength) {
Arrays.fill(value, count, newLength, '\0');
}
count = newLength;
}
執行sb.setLength(2);char[]數組內容沒有變化,下標0,1,2還是存儲6,6,6
就是把count值設置為2而已,下面調用toString();方法重新構造一個String對象,char數組存儲6,6
如果設置sb.setLength(4);構造新的String對象,最后一個補上'0'。
總結
以上是生活随笔為你收集整理的string容量JAVA_java的StringBuilder类的长度和容量有什么区别呢?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 字符串模糊匹配,awk模糊匹
- 下一篇: jenkins教程菜鸟_jenkins