String缓冲区
StringBuffer
//1.创建一个缓冲区对象
StringBuffer sb = new StringBuffer();
//2.追加一个字符串
sb.append(“abc”);
//3.插入一个boolean值
sb.insert(1,ture);
//4.删除字符
sb.delete(1,4);删除索引1-4的
//5.修改字符
sb.replace(1,5,”false”);
*在内存中的过程。
1,创建一个字符串缓冲区容器。
2,将要组成字符串的元素先存储起来。
3,最后将缓存区填充数据编程字符串。
字符串缓存区中维护了一个可变长度的数组
解释:其实就是超出内部数组长度后,新建数组的长度是原数组的1.5倍或1.75等以上。
并将原数组的数据复制到新数组中,并将新的元素添加到新数组中。
StringBuilder
用法和StringBuffer相同,但是只适合单线程,是线程不同步的。
一般建议首选StringBuilder,因为速度快
不安全性举例:
当一个容器正在添加的时候同时又被另一个线程操作删除,就会出现了问题。
所以给各种方法加了锁,但是锁就会影响速度