介绍
String拼接字符串每拼接一次都会创建新对象,开辟新的空间,占用内存,效率较低
StringBuilder底层自带一个缓冲区(没有被final修饰byte数组)拼接字符串后都会在此缓冲区中进行保存,在拼接过程中不会随意产生新对象(不超默认长度),节省内存
缓冲区默认数组长度为16个字节
超出数组长度会进行扩容,创建一个新长度的新数组,将老数组元素复制到新数组中,人后将新数组地址值赋值给老数组
每次扩容老数组的2倍+2,如果穿的长度超出2倍+2,就按照实际数据个数为准
StringBuilder的使用
构造
StringBuilder sb = new StringBuilder();
StringBUilder sb = new StringBuilder(String);
方法
StringBuilder append(任意类型数据) 字符串拼接,返回的是StringBuilder自己
StringBuilder reverse() 字符串反转,返回StringBuilder
String toString() 将StringBuilder转成String,String中对字符串处理的方法更多,所以先使用效率高的StringBuilder,再转为String对字符串进行更多操作
StringBuffer对于StringBuilder而言效率低,但线程安全,StringBuilder线程不安全