zoukankan      html  css  js  c++  java
  • 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类详解

  • 相关阅读:
    装饰
    统一软件开发过程之2:用例文本书写
    统一软件开发过程之1:创建领域模型
    工厂方法
    volatile
    中介者
    建造者
    C#委托,事件与回调函数
    控件资源嵌入
    装饰
  • 原文地址:https://www.cnblogs.com/SQP51312/p/6116315.html
Copyright © 2011-2022 走看看