成都网站建设v芯ee8888e,黄埔企业网站建设,怎样做科普视频网站,网络公司推广软文StringBuffer类
StringBuffer类,线程安全的可变字符序列#xff0c;初始化容量为16个字符。一个类似于String的字符串缓冲区#xff0c;但是不能修改。
常用的是append和insert方法,可以重载#xff0c;以接纳不同类型的参数类型 x.append(y) 等价于 insert(x…StringBuffer类
StringBuffer类,线程安全的可变字符序列初始化容量为16个字符。一个类似于String的字符串缓冲区但是不能修改。
常用的是append和insert方法,可以重载以接纳不同类型的参数类型 x.append(y) 等价于 insert(x.length,y)
/*
在实际开发过程中频繁使用字符串拼接会引起资源的浪费
在Java中的字符串是不可变的每拼接一次就会产生新的字符串
这样会占用大量的方法区内存造成方法区内存的浪费
String ahello;aworld;以上两行代码导致在方法区字符串常量池中创建了三个常量“hello”worldhelloworld*/
public class StringBufferTest{public static void main(String [] args){String s;for(int i0;i100;i){si; }/*这样写会造成大量的方法区常量池内存的浪费造成很大的压力*/}
}
/*开发过程中如果需要进行大量的字符串拼接建议使用StringBufferjava.lang.StringBufferjava.lang.StringBuilder
*/
public class StringBufferTest{public static void main(String[] args) {// TODO Auto-generated method stub//创建一个初始化容量为16的 byte[] 数组。字符串缓冲区对象StringBuffer stringBuffer new StringBuffer();//拼接字符串统一调用append()方法stringBuffer.append(a);stringBuffer.append(b);stringBuffer.append(a);//append方法在进行追加时如果byte数组满了会自动进行扩容System.out.println(stringBuffer.toString());//不写也会默认调用toString方法//aba//如何优化StringBuffer的性能?/*在创建StringBuffer时尽可能给一个初始化容量* 尽量减少底层的扩容次数预估计一下给一个大一点的容量* *///String 和 StringBuffer底层都是byte[] 数组。区别是String中的byte数组是被final修饰的一旦定义不会被改变//StringBuffer 原理是数组容量 地址会指向新的字符串之前的会被释放StringBuffer sb new StringBuffer(12);//给一个合适的初始化容量能够优化程序,扩容次数越少效率越高sb.append(hello);sb.append(world);System.out.print(sb);}
}
方法描述append(String str)在字符串末尾追加字符串delete(int start,int end)删除区间内字符前闭后开 后面往前移在字符串基础上操作deleteCharAt(int index)删除索引处字符replaceCharAt(int start,int end,str)替换区间处字符substring(int start)从起始位置截取到末尾substring(int start,int end)从索引strart位置到索引endinsert(int offset,str)从索引处插入字符串indexOf(str)第一次出现的位置reverse()字符串序列翻转toString对象转成字符串insert()