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
    }

更多内容详见:

java之AbstractStringBuilder类详解

java之StringBuilder类详解

 

转载于:https://www.cnblogs.com/SQP51312/p/6116315.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值