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类详解

  • 相关阅读:
    四种nlogn排序算法代码
    HDU1421
    HDU1789
    HDU1978
    HDU2059
    HDU2089
    深入理解数组与指针的区别
    存储字节对齐问题
    h5新特性<data*>
    浏览器的标准模式和怪异模式
  • 原文地址:https://www.cnblogs.com/SQP51312/p/6116315.html
Copyright © 2011-2022 走看看