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

  • 相关阅读:
    进程与线程
    the art of seo(chapter seven)
    the art of seo(chapter six)
    the art of seo(chapter five)
    the art of seo(chapter four)
    the art of seo(chapter three)
    the art of seo(chapter two)
    the art of seo(chapter one)
    Sentinel Cluster流程分析
    Sentinel Core流程分析
  • 原文地址:https://www.cnblogs.com/SQP51312/p/6116315.html
Copyright © 2011-2022 走看看