您好,登錄后才能下訂單哦!
區別
1.可變與不可變
String —> private final char value[]; final 不可變的
StringBuilder/Buffer —> char value[] 可變的
String設計成不可變原因 -> 多個指引指向同一個內存空間,如任意指引修改,值將改變,其它引用也將改變。
2.是否多線程安全
String —> 安全 (不可變對象)
StringBuilder —> 不安全
StringBuffer —> 安全
3.性能
1.StringBuilder > StringFormat StringFormat內部也是StringBuilder AppendFormat實現的。(當數據量小的時候 性能差距不是很明顯)
2.StringBuilder大概比Buffer快15% 。
3.“A” + “b” 系統編譯的時候自動轉換成 new StringBuilder.append(“a”).append(“b”);
4.使用上
StringBuilder 默認情況是16個字節。當內容超過指定大小,StringBuilder會擴容 (2*原大小+2)。因此根據業務需求指定合適的大小很重要(避免多次 復制成本和申請內存空間 ),一般情況下字符占2個字節 中文占2~4個字節。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。