类定义
public final StringBuffer extends AbstractStringBuilder implements Serializable, CharSequence{}
类属性
private transient char[] toStringCache;
构造函数
public StringBuffer(){
super(16);
}
public StringBuffer(int capacity){
super(capacity);
}
public StringBuffer(String str){
super(str.length + 16);
append(str);
}
public StringBuffer(CharSequence seq){
this(seq.length() + 16);
append(seq);
}
方法
public synchronized int length(){
return count;
}
public synchronized int capacity(){
return value.length;
}
public synchronized void ensureCapacity(int minimumCapacity){
super.ensureCapacity(minimumCapacity);
}
public synchronized void trimToSize(){
super.trimToSize();
}
pubic synchronized void setLength(int newLength){
toStringCache = null;
super.setLength(newLength);
}
public synchronized char charAt(int index){
if(index < 0 || index >= count){
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
public synchronized void getChars(int srcBegin, int srcEnd, char[] dst, int dstOffset){
super.getChars(srcBegin, srcEnd, dst, dstOffset);
}
public synchronized void setCharAt(int index, char ch){
if(index < 0 || index >= count){
throw new StringIndexOutOfBoundsException(index);
}
toStringCache = null;
value[index] = ch;
}
public synchronized StringBuffer append(Objec obj){
toStringCache = null;
super.append(String.valueOf(obj));
return this;
}
public synchronized StringBuffer append(String str){
toStringCache = null;
super.append(str);
return this;
}
public synchronized StringBuffer append(StringBuffer sb){
toStringCache = null;
super.append(sb);
return this;
}
public StringBuffer insert(int dstOffset, boolean b){
super.insert(dstOffset, b);
return this;
}
public synchronized StringBuffer reverse(){
toStringCache = null;
super.reverse();
return this;
}
public synchronized String toString(){
if(toStringCache == null){
toStringCache = Arrays.copyOfRange(value, 0, count);
}
return new String(toStringCache, true);
}
private final static java.io.ObjectStreamField[] serialPersistenFileds = {
new java.io.ObjectStreamFiled("value", char[].class),
new java.io.ObjectStreamField("count", Integer.TYPE),
new java.io.ObjectStreamField("shared", Boolean.TYPE),
}
private synchronized void writeObject(java.io.ObjectOutputStream s)
throws java.io.IOException {
java.io.ObjectOutputStream.PutField fields = s.putFields();
fields.put("value", value);
fields.put("count", count);
fields.put("shared", false);
s.writeFields();
}
private void readObject(java.io.ObjectInputStream s)
throws java.io.IOException, ClassNotFoundException {
java.io.ObjectInputStream.GetField fields = s.readFields();
value = (char[])fields.get("value", null);
count = fields.get("count", 0);
}