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());//
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());//
System.out.println(s3);// abc
}

更多内容详见:

java之AbstractStringBuilder类详解

java之StringBuilder类详解

java之StringBuffer类详解的更多相关文章

  1. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  2. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  3. java之Matcher类详解

    在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher  声明: ...

  4. java.lang.Thread类详解

    java.lang.Thread类详解 一.前言 位于java.lang包下的Thread类是非常重要的线程类,它实现了Runnable接口,今天我们来学习一下Thread类,在学习Thread类之前 ...

  5. Java中dimension类详解

    Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788

  6. java的ReentrantLock类详解

    ReentrantLock 能用于更精细化的加锁的Java类, 通过它能更清楚了解Java的锁机制 ReentrantLock 类的集成关系有点复杂, 既有内部类, 还有多重继承关系 类的定义 pub ...

  7. java中String类、StringBuilder类和StringBuffer类详解

    本位转载自http://www.cnblogs.com/dolphin0520/p/3778589.html  版权声明如下: 作者:海子 出处:http://www.cnblogs.com/dolp ...

  8. Java的String类详解

    Java的String类 String类是除了Java的基本类型之外用的最多的类, 甚至用的比基本类型还多. 同样jdk中对Java类也有很多的优化 类的定义 public final class S ...

  9. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

随机推荐

  1. 爱上MVC系列~过滤器实现对响应流的处理

    回到目录 MVC的过滤器相信大家都用过,一般用来作权限控制,因为它可以监视你的Action从进入到最后View的渲染,整个过程ActionFilter这个过滤器都参与了,而这给我们的开发带来了更多的好 ...

  2. EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离

    回到目录 前几天看了一个基于sqlserver的负载均衡与读写分离的软件Moebius,实现的方式还是不错的,这使得用sqlserver数据库的同学时有机会对数据库进行更有效的优化了

  3. 03- Shell脚本学习--字符串和数组

    字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似: 单双引号的区别: 双 ...

  4. Java程序员的日常——SpringMVC+Mybatis开发流程、推荐系统

    今天大部分时间都在写业务代码,然后算是从无到有的配置了下spring与mybatis的集成. SpringMVC+Mybatis Web开发流程 配置数据源 在applicationContext.x ...

  5. rabbitmq消息队列——"路由"

    在之前的教程中,我们创建了一个简单的日志系统.我们能够向许多交换器转发日志消息. 在本教程中,我们将添加一个功能--我们让它仅仅接收我们感兴趣的日志类别.举例:我们 实现仅将严重级别的错误日志写入磁盘 ...

  6. v-show和v-if的区别

    v-show和v-if的区别

  7. Test Design Guidelines for Reusability

    Last Updated: JAN.10.2008 From: http://safsdev.sourceforge.net/sqabasic2000/TestDesignGuidelines.htm ...

  8. java中Comparable实现对象的比较

    /* class A implements Comaprable<A>{ } 那么 A x = new A(); 类关系图 Object o = A; Object Comparable ...

  9. java之Maven配置和springMvc的简单应用

    初始springMvc这个框架,非常的陌生,而且幸好公司是通过maven这个代码管理工具,可以随时添加依赖.解决了很多问题在以后深入开发中. 项目结构: 通过结构中,pom.xml这个文件其实就说明这 ...

  10. AngularJS in Action读书笔记2——view和controller的那些事儿

    今天我们来818<angularjs in action>的第三章controller和view. 1.Big Picture概览图 View是angularjs编译html后呈现出来的, ...