1类的声明
不可以被继承的
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
extends AbstractStringBuilder
继承 抽象类,看了源码会发现,底层实现调用的都是抽象类的方法
implements java.io.Serializable, CharSequence
两个很熟悉的接口 ,一个是序列化,一个是字符类型的接口(我这里说明的不太准确)
2类的成员变量
- 这里由于继承了抽象类,所以这个类也相应的有父类的字段,value 和count
char[] toStringCache
看说明是 tostring时有用,但我还是不知道有啥用
2类方法
这里截取的是一些方法,通过查看jdk源码,会发现基本上所有的方法都是调用的父类的方法,唯一不同的是多了 synchronized修饰符,有了线程安全的性质。下面是代码选段
@Override
public synchronized void setCharAt(int index, char ch) {
if ((index < 0) || (index >= count))
throw new StringIndexOutOfBoundsException(index);
toStringCache = null;
value[index] = ch;
}
@Override
public synchronized StringBuffer append(Object obj) {
toStringCache = null;
super.append(String.valueOf(obj));
return this;
}
@Override
public synchronized StringBuffer append(String str) {
toStringCache = null;
super.append(str);
return this;
}