為什麼要使用 StringBuilder 而不是 String?
String 是 Java 中一個強大的類,允許追加。然而,儘管 String 具有這些功能,但出於特定原因,出現了一個名為 StringBuilder 的獨特類別。
不變性與可變性
根本區別在於 String 與 StringBuilder 的本質。字串是不可變的,這意味著它的內部狀態不能改變。對 String 執行的每個操作都會建立一個新物件。對於涉及重複串聯的操作來說,這可能效率低。
相反,StringBuilder 是可變的。當您追加到 StringBuilder 時,它會修改內部 char 數組,而不是建立新物件。這顯著提高了字串操作的效能。
效率
考慮以下程式碼:
String str = ""; for (int i = 0; i < 500; i++) { str += i; }
此程式碼片段將建立 500 個新的 String 對象,這是低效的。使用 StringBuilder 取代:
StringBuilder sb = new StringBuilder(); for (int i = 0; i < 500; i++) { sb.append(i); }
只會修改一個 StringBuilder 對象,從而顯著提高效能。
最佳使用
而StringBuilder對於連接來說更有效,重要的是要注意編譯器會自動轉換某些String 表達式以避免建立多個對象。例如:
String d = a + b + c; // implicit use of StringBuilder
如果擔心執行緒安全,請考慮使用提供同步方法的 StringBuffer。
以上是什麼時候應該選擇 StringBuilder 而不是 String?的詳細內容。更多資訊請關注PHP中文網其他相關文章!