前言
StringBuffer 、 StringBuilder、 String 是三种数据类型
首先来回顾下String类的特点:
- 任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指向而已。
- 通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer和StringBuilder类。
- StringBuffer 和 StringBuilder 大部分功能是相同的,主要介绍 StringBuffer
- 在String中使用"+"来进行字符串连接,但是这个操作在StringBuffer类中需要更改为append()方法
一、观察String 对象在进行字符串拼接
public static void main(String[] args) {
String str = "acbcd";
str = str + "123";
System.out.println(str);
}
所以String类型在进行字符串拼接的时候,会优化成StringBuilder对象,然后在来进行拼接,拼接完之后在调用StringBuilder类的ToString方法,返回一个新的String对象,这时str引用的就是StringBUilder返回的对象
二、观察StringBuilder的使用
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("abcde");
System.out.println(sb)