Java StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

 

StringBuffer 线程安全,执行速度慢 

   因为StringBuffer 的所有公开方法都是 synchronized 修饰的

StringBuilder 线程不安全,执行速度快(推荐使用)

 

String的赋值可以赋值为空,但是StringBuffer和StringBuilder不可以。

 

StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。

StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。

 

既然 StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,所以毫无疑问,StringBuilder 的性能要远大于 StringBuffer。

 

使用多线程操作同一个 StringBuffer的场景使用StringBuffer更好,当使用单线程操作时用StringBuilder更好。

 

StringBuilder的方法:

1.public StringBuffer append(String s)
将指定的字符串追加到此字符序列。

2.public StringBuffer reverse()
 将此字符序列用其反转形式取代。

3.public delete(int start, int end)
移除此序列的子字符串中的字符。

4.public insert(int offset, int i)
将 int 参数的字符串表示形式插入此序列中。

5.replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。

posted @ 2020-08-13 15:14  yuanzhinv01  阅读(111)  评论(0)    收藏  举报