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. react2 react 遍历数组

    <body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...

  2. ftp下载目录下所有文件及文件夹内(递归)

    ftp下载目录下所有文件及文件夹内(递归)   /// <summary> /// ftp文件上传.下载操作类 /// </summary> public class FTPH ...

  3. php使用正则过滤js脚本代码实例

    匹配的规则不能用 "/<script.*<\/script>/i",因为它不能匹配到换行符,那么多行js就匹配不掉了. 要用 "/<script[ ...

  4. 美团(iPad)顶部界面的简单实现, 及开发时常见bug

    项目功能介绍:1.支持横竖屏旋转,界面正常显示2.通过点击界面顶部"美团",可展示出左右双tableView分别显示服务类列表和子类列表3.通过点击界面顶部"广州&quo ...

  5. 【VS技巧】根据XML自动生成类型

    .NET 4.5对应的VS版本(不要问我哪个版本)中新增了一个功能,严重实用,可以根据XML文档生成新类型.这个功能在VS的[编辑]>[选择性粘贴]菜单中.怎么玩?不急,咱们实际操作一下. 以网 ...

  6. 2014牡丹江网络zoj3816Generalized Palindromic Number(dfs或者bfs)

    #include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> ...

  7. MySQL PXC 高可用集群搭建

    一些名词介绍: WS:write set 写数据集    IST: Incremental State Transfer 增量同步    SST:State Snapshot Transfer 全量同 ...

  8. 硬刚Google ,这家小公司的增长团队长啥样

    背景: AdRoll 是一家主打重定向广告(Retargeting)服务的技术公司,基于用户浏览记录等信息,为广告主提供几乎瞬时的广告位购买服务,当前估值15.5亿美元.吊打谷歌, AdRoll 已经 ...

  9. PetaPoco 访问SQL SERVER 存储过程

    博客园有篇文章<小巧方便的ORM类库——PetaPoco>  介绍了PetaPoco调用存储过程: //调用存储过程 db.Execute("exec procSomeHandl ...

  10. Spring学习总结(二)——静态代理、JDK与CGLIB动态代理、AOP+IoC

    一.为什么需要代理模式 假设需实现一个计算的类Math.完成加.减.乘.除功能,如下所示: package com.zhangguo.Spring041.aop01; public class Mat ...