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 中的字符替换此序列的子字符串中的字符。
浙公网安备 33010602011771号