Serializable
Comparable<StringBuffer>
CharSequence
该类是 java.lang 包私有的
1、字符串( character strings ) 缓冲区 ( buffer ): string buffer 根据 Java 中类的命名规范为 StringBuffer
2、与 String 类的实例一样 StringBuffer 类的实例 也用于封装 字符串( character strings )
3、StringBuffer 类中定义了大量的用来操作 字符缓冲区的 方法 append / insert / replace / deleteCharAt /delete
4、与 String 类的实例 不可变不同 StringBuffer 类的实例是可变的 因此每次操作都会影响 StringBuffer 实例
package CharSequence;
?
/**
* 1、字符串( character strings ) 缓冲区 ( buffer ): string buffer 根据 Java 中类的命名规范为 StringBuffer
* 2、与 String 类的实例一样 StringBuffer 类的实例 也用于封装 字符串( character strings )
* 3、StringBuffer 类中定义了大量的用来操作 字符缓冲区的 方法 append / insert / replace / deleteCharAt /delete
* 4、与 String 类的实例 不可变不同 StringBuffer 类的实例是可变的 因此每次操作都会影响 StringBuffer 实例
*
* */
?
public class StringBufferTest1 {
?
public static void main(String[] args) {
?
// 使用 StringBuffer 无参数构造创建一个 空的 字符串缓冲区
StringBuffer buffer = new StringBuffer();
System.out.println( "length : " + buffer.length() + " , capacity : " + buffer.capacity() + " , toString : " + buffer );
?
buffer.append( false ); // 在 字符缓冲区中 追加内容
?
System.out.println( "length : " + buffer.length() + " , capacity : " + buffer.capacity() + " , toString : " + buffer );
?
buffer.insert( 0 , "hello," );
?
System.out.println( "length : " + buffer.length() + " , capacity : " + buffer.capacity() + " , toString : " + buffer );
?
buffer.replace( 5 , 6 , "," );
?
System.out.println( "length : " + buffer.length() + " , capacity : " + buffer.capacity() + " , toString : " + buffer );
?
int index = buffer.indexOf( "," );
?
buffer.deleteCharAt( index );
?
System.out.println( "length : " + buffer.length() + " , capacity : " + buffer.capacity() + " , toString : " + buffer );
?
buffer.delete( 5 , 10 );
?
System.out.println( "length : " + buffer.length() + " , capacity : " + buffer.capacity() + " , toString : " + buffer );
?
}
}
?
1、StringBuilder 类的设计 与 StringBuffer 基本一致 ( 父类 、实现接口 、构造 、方法 )
2、StringBuilder 类中的 方法都没有 synchronized 修饰的, 而 StringBuffer 中所有 public 方法都是有 synchronized 修饰的
3、不论是 StringBuilder 还是 StringBuffer ,都可以使用 setLength 方法有效字符数 、通过 trimToSize 来调整容量
package CharSequence;
/**
* 1、StringBuilder 类的设计 与 StringBuffer 基本一致 ( 父类 、实现接口 、构造 、方法 )
* 2、StringBuilder 类中的 方法都没有 synchronized 修饰的,
* 而 StringBuffer 中所有 public 方法都是有 synchronized 修饰的
* 3、不论是 StringBuilder 还是 StringBuffer ,都可以使用 setLength 方法有效字符数 、通过 trimToSize 来调整容量
*/
public class StringBuilderTest {
?
public static void main(String[] args) {
?
StringBuilder builder = new StringBuilder( "hello" );
System.out.println( "length : " + builder.length() + " , capacity : " + builder.capacity() + " , toString : " + builder );
?
builder.setLength( 0 ); // 设置 length 为 零 ( 有效字符数 为 零 )
?
System.out.println( "length : " + builder.length() + " , capacity : " + builder.capacity() + " , toString : " + builder );
?
builder.append( true );
?
System.out.println( "length : " + builder.length() + " , capacity : " + builder.capacity() + " , toString : " + builder );
?
builder.trimToSize();
?
System.out.println( "length : " + builder.length() + " , capacity : " + builder.capacity() + " , toString : " + builder );
?
}
?
}
?
StringBuffer 线程安全 所有 public 修饰的方法都有 synchronized 关键字修饰
原文:https://www.cnblogs.com/zachyoung/p/13019457.html