StringBuffer 和 StringBuilder

StringBuffer 和 StringBuilder

StringBuffer:

  • StringBuffer 是线程安全的。这意味着它的方法是同步的,可以在多线程环境中使用而不会出现问题。
  • 由于同步,StringBuffer 的性能比 StringBuilder 稍低,特别是在单线程环境下。

StringBuilder

  • StringBuilder 是非线程安全的。它的方法不是同步的,因此在单线程环境中性能更好。
  • 如果在多线程环境中使用 StringBuilder,且多个线程可能会同时修改它,那么需要手动同步。

常用方法

  • append(X x): 将给定的数据追加到字符串末尾。
  • insert(int offset, X x): 在指定位置插入数据。
  • delete(int start, int end): 删除从 startend - 1 的字符。
  • deleteCharAt(int index): 删除指定索引处的字符。
  • replace(int start, int end, String str): 用新字符串替换从 startend - 1 的字符。
  • reverse(): 反转字符串。
  • substring(int start): 返回从 start 开始到末尾的子字符串。
  • substring(int start, int end): 返回从 startend - 1 的子字符串。
  • capacity(): 返回当前容量。
  • ensureCapacity(int minimumCapacity): 确保容量至少是指定的最小值。
  • setLength(int newLength): 设置字符串的新长度。
  • toString(): 返回字符串的当前表示形式。

以下是 StringBuilderStringBuffer 的简单使用示例:

// 使用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"

在这两个示例中,StringBuilderStringBuffer 的使用方法非常相似。

posted @ 2024-08-05 16:01  wen-210162704027  阅读(1)  评论(0编辑  收藏  举报