是不是每个java程序员在被面试或面试别人的时候都会问到StringBuffer和StringBulider的区别?
两者同属于java.lang包,都继承自AbstractStringBulider类(StringBulider和抽象类AbstractStringBulider都是jdk1.5才引入,StringBuffer是JDK1.0引入的,很神奇吧,StringBuffer继承了一个新的接口,是不是我眼镜看错了?不知道,望高手来给我点解答)
下面先介绍一下AbstractStringBulider接口,代码如下:
package java.lang;
import sun.misc.FloatingDecimal;
import java.util.Arrays;
/**
* 一个可变的字符串.
*/
abstract class AbstractStringBuilder implements Appendable, CharSequence {
// value用来存储字符
char value[];
// count是使用字符的数量
int count;
// 无参的构造方法对于子类的序列化很有必要
AbstractStringBuilder() {
}
// 初始化容量
AbstractStringBuilder(int capacity) {
value = new char[capacity];
}
/**
* Returns the length (character count).
*/
public int length() {
return count;
}
// 返回当前容量
public int capacity() {
return value.length;
}
public abstract String toString();
/**
* Needed by String for the contentEquals method.
*/
final char[] getValue() {
return value;
}
}