For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
昆明达内的小编这一期给大家讲java之StringBuffer类详解
StringBuffer
线程安全的可变字符序列。
StringBuffer源码分析(JDK1.6):
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence
StringBuffer类被final修饰,可知StringBuffer类不能被继承。
StringBuffer中的大部分方法都有synchronized修饰。有些虽然没有synchronized修饰,但是通过调用实现同步。因此StringBuffer是线程安全的。
StringBuffer中的大部分方法都是直接调用的AbstractStringBuilder类中的方法。AbstractStringBuilder类详见java之AbstractStringBuilder类详解。
构造器
1、构造一个没有字符的字符串缓冲区,默认初始容量为16。
public StringBuffer() {
super(16);
}
2、构造一个没有字符的字符串缓冲区,并指定初始容量。
public StringBuffer(int capacity) {
super(capacity);
}
3、构造一个字符串缓冲区,并初始化为指定的字符串。初始容量为16加上字符串参数的长度。
public StringBuffer(String str) {
super(str.length() + 16);
append(str);
}
4、与上个构造器类似。
public StringBuffer(CharSequence seq) {
this(seq.length() + 16);
append(seq);
}
测试:
public static void main(String[] args) {
//使用无参构造器
StringBuffer s1 = new StringBuffer();
System.out.println(s1.length());// 0
System.out.println(s1.capacity());// 16
//指定容量
StringBuffer s2 = new StringBuffer(10);
System.out.println(s2.capacity());// 10
//初始化为指定的字符串
StringBuffer s3 = new StringBuffer("abc");
System.out.println(s3.capacity());// 19
System.out.println(s3);// abc
}
了解详情请登陆昆明达内IT培训官网(km.tedu.cn)!