Java中String、StringBuffer和StringBuilder的区别——附示例

已发表: 2022-01-30
Java中String、StringBuffer和StringBuilder的区别-附比较和示例

在本 Java 教程中,我们将讨论 Java String、StringBuffer 和 StringBuilder 之间的区别。

让我们开始吧:

细绳:

String 类表示字符串。 Java 程序中的所有字符串文字,例如“crunchify”,都是作为此类的实例实现的。 字符串是常量; 它们的值在创建后无法更改。

字符串缓冲区:

一个线程安全的、可变的字符序列。 字符串缓冲区类似于字符串,但可以修改。

在任何时候它都包含一些特定的字符序列,但是序列的长度和内容可以通过某些方法调用来改变。

字符串缓冲区可以安全地被多个线程使用。

字符串生成器:

可变的字符序列。 此类提供与 StringBuffer 兼容的 API,但不保证同步。

此类设计用于在单个线程正在使用字符串缓冲区的地方(通常情况下)用作 StringBuffer 的替代品。

在可能的情况下,建议优先使用此类而不是 StringBuffer,因为它在大多数实现下会更快。

让我们比较一下 String、StringBuffer 和 StringBuilder 的以下所有特性。

细绳字符串缓冲区字符串生成器
线程安全吗? 是的是的
同步? 是的是的
可修改? 否(不可变) 是(可变) 是(可变)
贮存字符串池
表现快速地快点

Java代码:

  • 创建类:CrunchifyStringVsStringBufferVsStringBuilder.java
  • 将以下代码放入其中
  • 保存存档

在本教程中,我们添加、追加字符串总计 199999 次。

IntelliJ IDEA 控制台结果:

在 IntelliJ IDEA 或 Eclipse 控制台中将上述程序作为 Java 应用程序运行,您将得到如下结果。

如果您在上面程序运行时遇到任何问题,或者在 String、StringBuffer 和 StringBuilder 之间有任何问题,请告诉我。