String 和 StringBuffer 的區別


String 是一個不可變類,其物件在建立後無法修改,但可以引用其他物件。它們在多執行緒環境中非常有用,因為多個執行緒無法更改物件的狀態,因此不可變物件是執行緒安全的。

StringBuffer 是可變類,可用於對字串物件進行操作,例如字串反轉、字串連線等。我們可以修改字串而無需建立字串的新物件。StringBuffer 也是執行緒安全的。

此外,字串連線 + 運算子內部使用 StringBuffer 或 StringBuilder 類。以下是差異。

序號關鍵點StringStringBuffer
1
基礎
String 是一個不可變類,其物件在建立後無法修改
StringBuffer 是可變類,可用於對字串物件進行操作
2
方法
方法不是同步的
此類中的所有方法都是同步的。
3
效能
它很快
多個執行緒無法同時訪問,因此速度較慢
4.
記憶體區域
如果使用建構函式或方法建立 String,則這些字串將儲存在堆記憶體和字串常量池中
堆空間

String 示例

public class Main {
   public static void main(String args[]) {
      String s1 = "Hello Tutorials Point";
      String upperCase = s1.toUpperCase();
      System.out.println(upperCase);
   }
}

StringBuffer 示例

public class StringBufferExample{
   public static void main(String[] args){
      StringBuffer buffer=new StringBuffer("Hi");
      buffer.append("Java 8");
      System.out.println("StringBufferExample" +buffer);
   }
}

更新於: 2020-09-09

12K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告