日期:2014-05-20  浏览次数:20659 次

java中的字符串是不是以"\0"结尾的
java中的字符串是不是以"\0"结尾的?如若不是在StringBuilder类中为什么的构造函数是这样的
public StringBuilder() {
  super(16);
  }

public StringBuilder(int capacity) {
  super(capacity);
  }
public StringBuilder(String str) {
  super(str.length() + 16);
  append(str);
  }

------解决方案--------------------
不是

预分配的空间
------解决方案--------------------
要继续点进去看,它是继承AbstractStringBuilder,调用它的构造函数,
AbstractStringBuilder(int i)
{
value = new char[i];
}
这样看懂了吧
------解决方案--------------------
StringBuilder一个长度可变的字符序列,不是以"\0"结尾的。
------解决方案--------------------
为了append时不必每次都要重新分配空间。

一般 构造 StringBuiler时最好指定大小。
比如你预估长度大约500就 new StringBuilder(500), 类似的有ArrayList等容器