String 和 StringBuffer 的區別
String 是一個不可變類,其物件在建立後無法修改,但可以引用其他物件。它們在多執行緒環境中非常有用,因為多個執行緒無法更改物件的狀態,因此不可變物件是執行緒安全的。
StringBuffer 是可變類,可用於對字串物件進行操作,例如字串反轉、字串連線等。我們可以修改字串而無需建立字串的新物件。StringBuffer 也是執行緒安全的。
此外,字串連線 + 運算子內部使用 StringBuffer 或 StringBuilder 類。以下是差異。
序號 | 關鍵點 | String | StringBuffer |
---|---|---|---|
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); } }
廣告