Java 中 StringBuffer 和 StringBuilder 的区别
StringBuffer 和 StringBuilder 都是可变类,可用于对字符串对象执行操作,例如字符串反转、字符串连接等。我们可以修改字符串,而无需创建字符串的新对象。
StringBuffer 是线程安全的,而 StringBuilder 不是线程安全的。因此,它比 StringBuffer 快。此外,字符串连接 + 运算符在内部使用 StringBuffer 或 StringBuilder 类。以下是区别。
序号 | 关键点 | StringBuffer | StringBuilder |
---|---|---|---|
1 | 基础 | StringBuffer 是随着 Java 的初始版本引入的 | 它是在 Java 5 中引入的 |
2 | 同步 | 它是同步的 | 它不是同步的 |
3 | 性能 | 它是线程安全的。因此,多个线程无法同时访问它,因此速度较慢。 | 它不是线程安全的,因此比 StringBuffer 快。 |
4 | 可变性 | 它是可变的。我们可以修改字符串而无需创建对象。 | 它也是可变的 |
5 | 存储 | 堆 | 堆 |
StringBuilder 示例
public class StringBuilderExample{ public static void main(String[] args){ StringBuilder builder=new StringBuilder("Hi"); builder.append("Java 8"); System.out.println("StringBuilderExample" +builder); } }
输出
StringBuilderExampleHiJava 8
StringBuffer 示例
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer=new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" +buffer); } }
输出
StringBufferExampleHiJava 8
广告