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 之間有任何問題,請告訴我。