首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java StringBuffer 與 StringBuilder 核心差異與用法詳解

     編輯:Java 綜合教學

Java StringBuffer 與 StringBuilder 核心差異與用法詳解

當需要頻繁修改字符串內容時,應使用 StringBuffer 或 StringBuilder。兩者均提供可變字符序列,避免 String 不可變帶來的大量對象創建。核心差異在於線程安全性與性能。

核心對比

常用方法速查

特性StringBufferStringBuilder
線程安全是(方法同步)否(非同步)
性能較低較高(推薦單線程使用)
引入版本JDK 1.0JDK 1.5

示例代碼

public class Test {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer(" test");
        sb.append(" String Buffer");
        System.out.println(sb); // " test String Buffer"
    }
}

選擇指南

  • 單線程/高性能場景:優先使用 StringBuilder
  • 多線程共享緩衝區:必須使用 StringBuffer
  • 字符串拼接循環:無論哪種,均優於 String +=

底層原理: 兩者均維護一個 char[] 數組,容量不足時按 2 倍擴容(JDK 1.5+)。StringBuffer 方法加 synchronized 關鍵字,StringBuilder 無同步開銷。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方法說明
append(String s)追加字符串
reverse()反轉序列
delete(int start, int end)刪除子序列
insert(int offset, String s)插入字符串
replace(int start, int end, String str)替換子序列
capacity()當前容量
ensureCapacity(int min)確保最小容量
length()字符長度
charAt(int index)指定位置字符
substring(int start)截取子序列為 String
toString()轉為 String