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. WindowManager 实现悬浮窗 详解

    WindowManager 实现悬浮窗 详解 一:对于想直接看效果的,可以看看我的demo app. 链接:http://sj.qq.com/myapp/detail.htm?apkName=com. ...

  2. atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx

    atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx 1.1. V3 新特性1 1.2. V2 新特性1 2. Token的归类1 3. Token的用途 ...

  3. Atititcmd cli环境变量的调用设置与使用

    Atititcmd cli环境变量的调用设置与使用 1.1. Cgi 环境变量的调用设置与使用1 1.2. 环境变量vs  系统变量1 1.3. 环境变量的分类 A.与服务器相关的环境变量B ,与客户 ...

  4. SVG 基础

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 每天一个linux命令(8):cp 命令

    cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是 ...

  6. IBM appscan 9.0破解版分享

    简介:IBM AppScan该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界.Rational AppScan 可自动化 Web 应用的安全漏洞评 ...

  7. KnockoutJS 3.X API 第三章 计算监控属性(4)Pure computed observables

    Pure computed observables Pure computed observables是KO在3.2.0版本中推出的.她相对于之前的ComputedObservables有很多改进: ...

  8. Python流程控制语句

    人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在原地打转,找不到方向.对于相信有 ...

  9. C#中使用Oracle存储过程返回结果集

    问题: 在MSSQLServer中定义的存储过程可以直接返回一个数据集,如: create procedure sp_getAllEmployees as SELECT * FROM [NORTHWN ...

  10. Codrops 优秀教程:实现效果精美的多层推拉菜单

    Codrops 给我们分享了一个多层菜单的实现教程.他们试图探索创建一个嵌套的多级菜单,是非常有用的东西,可以有很多的内容,如网上商店的导航菜单. 这个 Push Menu 效果理论上可以包含无限嵌套 ...