Java String、StringBuilder、StringBuffer

121 阅读1分钟

Java用String、StringBuilder、StringBuffer三个类来封装对字符串的操作。

String类中对字符串的保存格式为 private final char value[];
它被final所修饰,所以它是不可变的,从它被创建直至被销毁,它的字符序列都没有改变,我们对它的一系列操作都是通过创建新的String对象来完成的。(很浪费资源)

StringBuilder、StringBuffer两个类都继承自抽象类AbstractStringBuilder,它们对字符串的保存格式为
char[] value;
所以它们是可变的,我们可以通过它提供的方法(如append(),insert()等)通过直接修改字符序列来完成对字符串的操作。

StringBuilder、StringBuffer与String类之间的转换

当我们通过一系列对StringBuilder、StringBuffer对象的转换后得到最终自己需要的字符串,可以通过toString()方法来将StringBuilder、StringBuffer对象转化为String对象。

抽象父类AbstractStringBuilder中的toString()方法:

public abstract String toString();

一般适用场景

  • String:适用于少量的字符串操作的情况

  • StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

  • StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况