java.lang.StringBuffer

本文为 Java 源码阅读中的一节,重要程度为 1

NONGFAH 写于 2019-07-09

StringBuffer 为 AbstractStringBuilder 的子类,该类在方法上使用了 synchronized 关键字对操作加锁,线程安全。

类定义

StringBuffer 是线程安全的可变字符串序列,不可继承。

接口

该类实现了两个接口:

  • CharSequence : 包含 length() , charAt(int) , subSequence(int,int),toString() ;表示char值的一个可读序列
  • Serializable : 标识序列化

构造器

使用无参构造器 内部容量默认为16。 使用 int 指定容量,内部初始容量为指定值。 使用 String字符串序列构造时,初始容量为字符串长度+16.

属性

transient char[] toStringCache;

在包含父类属性的同时,增加了一个 transient 修饰的 char[],该属性用于缓存 最近一次的 toString() 结果。

方法

大部分方法操作都与父类相同,不同之处在于加了锁用于线程同步、在修改字符串时将内部的 toStringCache 清空。