StringBuffer类和StringBuilder类
1、StringBuffer类
是一个字符串缓冲区的类,线程安全运行效率低,用户存储可变字符串
构造器:
StringBuffer sb=new StringBuffer();//创建空字符串的容器
StringBuffer sb=new StringBuffer(String);//将字符串使用容器存储
StringBuffer sb=new StringBuffer(int);//声明指定容量的容器
常用方法:
1.1、append():追加字符串
1.2、delete(int start,int end):删除指定位置的字符
1.3、insert(int start,String):插入到指定位置
1.4、reverse():反转字符
1.5、capacity():获取初始容量
1.6、ensureCapacity(int):设置最低所需容量
2、StringBuilder类
也是字符串缓冲区的类,它是线程不安全,且运行效率高的可变字符缓冲类
其StringBuilder的方法与StringBuffer几乎一样
面试题
StringBuffer、StringBuilder和String的区别
a、在运行速度上:StringBuilder > StringBuffer > String
原因: String是字符串常量,而StringBuilder和StringBuffer是字符串变量,当需要改变字符串内容时,Stirng重新创建变量并赋值, 而StringBuilder和StringBuffer可直接改原有的值,所以效率高,
b、在线程安全上:StringBuffer > StringBuilder > String
原因: StringBuffer是线程安全的,而StringBuilder线程不安全,在StringBuffer上的很多方法增加同步关键字(synchronized),导致在多个线程运行时,保持数据的完整性和一致性,而StringBuilder的方法并没有同步 ,如果在多线程环境下为了确保数据安全,建议使用StringBuffer ,如果在单线程环境下,提高效率使用StringBuilder