StringBuffer 和 StringBuilder
StringBuffer 和 StringBuilder
目录
- StringBuffer 和 StringBuilder
- StringBuffer:
- StringBuilder
- 常用方法
StringBuffer:
StringBuffer是线程安全的。这意味着它的方法是同步的,可以在多线程环境中使用而不会出现问题。- 由于同步,
StringBuffer的性能比StringBuilder稍低,特别是在单线程环境下。
StringBuilder
StringBuilder是非线程安全的。它的方法不是同步的,因此在单线程环境中性能更好。- 如果在多线程环境中使用
StringBuilder,且多个线程可能会同时修改它,那么需要手动同步。
常用方法
append(X x): 将给定的数据追加到字符串末尾。insert(int offset, X x): 在指定位置插入数据。delete(int start, int end): 删除从start到end - 1的字符。deleteCharAt(int index): 删除指定索引处的字符。replace(int start, int end, String str): 用新字符串替换从start到end - 1的字符。reverse(): 反转字符串。substring(int start): 返回从start开始到末尾的子字符串。substring(int start, int end): 返回从start到end - 1的子字符串。capacity(): 返回当前容量。ensureCapacity(int minimumCapacity): 确保容量至少是指定的最小值。setLength(int newLength): 设置字符串的新长度。toString(): 返回字符串的当前表示形式。
以下是 StringBuilder 和 StringBuffer 的简单使用示例:
// 使用StringBuilder
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
System.out.println(sb.toString()); // 输出 "Hello World"
// 使用StringBuffer
StringBuffer sbf = new StringBuffer();
sbf.append("Hello");
sbf.append(" World");
System.out.println(sbf.toString()); // 输出 "Hello World"
在这两个示例中,StringBuilder 和 StringBuffer 的使用方法非常相似。