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

posted @ 2020-10-27 18:48  晓笙  阅读(61)  评论(0编辑  收藏  举报