定义:StringBuilder用于创建和操作字符序列可变的字符串(对象)。
//StringBuilder类型的变量/常量所标识的内存空间存储的是StringBuilder实例的内存地址。注:当我们直接打印StringBuilder类型的变量/常量时,屏幕上输出的是String实例实例变量的值(即String实例中包含的字符序列)。注:这是因为执行打印操作时,JVM隐式调用该StringBuilder实例的“toString()”方法生成了相应String实例,继而隐式调用该String实例的“toString()”方法返回了String实例实例变量的值。
//相较于String类型的字符串(对象),StringBuilder类型的字符串(对象)在进行字符串拼接操作时效率更高。
例1:
String s = “Test”;
for(int i = 0; i < 3; i++) {
s += i;
} //运行时间较长
注:程序运行过程中共产生1个String实例,3个StringBuilder实例。
例2:
StringBuilder sb = new StringBuilder(“Test”);
for(int i = 0; i < 3; i++) {
sb = sb.append(i);
} //运行时间较短
注:程序运行过程中共产生1个String实例,1个StringBuilder实例。
StringBuilder类的基本实现:
[import java.lang.StringBuilder;]//“java.lang”包下的类无需显式导入即可使用。
①StringBuilder 变量名 = new StringBuilder(); ——创建StringBuilder实例,空字符串
②StringBuilder 变量名 = new StringBuilder(“字符序列”,本质也是String实例/String实例); ——创建StringBuilder实例
变量名.方法名(); ——调用方法
//以方式①创建String类的实例时,会将该实例以“实例”的形式存储在堆内存中。此时,变量所标识的内存空间存储的是“实例”的内存地址。
//以方式②创建String类的实例时,不但会将该实例以“字面量”的形式存储在常量池中,还会将该实例以“实例”的形式存储在堆内存中。此时,变量所标识的内存空间存储的是“实例”的内存地址。
//每个字面量在常量池中只有一份,同一个字面量在常量池中不会产生多个副本。
StringBuilder类的常用方法:
①append(基本数据类型的数据/String数据类型的数据) ——用于将StringBuilder实例实例变量的值(即StringBuilder实例中包含的字符序列)和实参值(会自动转换为String类型的数据)进行拼接,并用拼接后的结果替换该实例实例变量的值。
②reverse() ——用于对StringBuilder实例实例变量的值(即StringBuilder实例中包含的字符序列)进行反转,并用反转后的结果替换该实例实例变量的值。
③length() ——用于获取字符串的长度
④toString() ——用于生成相应的String实例
⑤equals() ——用于比较StringBuild实例在内存中的地址是否相同。注:StringBuild类没有重写Object类的“equals()”方法。