StringBuilder类
1. 概述:
stringbuilder是一个可变的字符串类,可以看做一个容器。存储任意类型的数据,但会自动转换我string类型的数据。
StringBuilder 的方法不是线程安全的,但他的速度快。
作用;提高字符串的拼接效率
public class StringBuilderDemo {
public static void main(String[] args) {
//string类的拼接
mothod();
//strngBuilder的拼接
long start = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 5000; i++) {
stringBuilder.append(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start); //1毫秒
}
private static void mothod() {
long start = System.currentTimeMillis();
String str = "";
for (int i = 0; i < 5000; i++) {
str = str + i;
}
long end = System.currentTimeMillis();
System.out.println(end - start); //153毫秒
}
}
2. 构造方法
pubic StringBuilder():创建一个空白的可变字符串对象,不含有任何对象
pubic StringBuilder(String str): 根据字符串的的内容创建可变字符串对象
3.常用方法
成员方法:
public StringBuilder append(任意对象) : 添加数据,并返回对象本身
public StringBuilder reverse() : 返回相反的字符串序列
public int length() : 返回长度(字符串出现的个数)
public String toString() : 通过toString() 就可以实现把StringBuilder对象转换为String
4.提高效率的原理
String “+” 号拼接的过程
当遇到"+" 号时,底层会调用StringBuilder的构造方法,调用append方法,在调用toString方法,转化为String对象。也就是说,每遇到一次加号,就会创建两个对象
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y5QacczT-1619357444902)(pigBuilder/2020-12-13_165603.png)]
StringBuilder的字符串拼接,无论拼接多少次,StringBuilder对象只创建一次,节约了大量时间
r对象只创建一次,节约了大量时间