string中stringbuffer和stringbuilder的區別是:1、StringBuffer是線程安全,而StringBuilder是線程不安全;2、StringBuffer公開方法同步,而StringBuilder沒有。
string中stringbuffer和stringbuilder的差異是:
##區別1:線程安全
#StringBuffer:線程安全,StringBuilder:線程不安全。因為 StringBuffer 的所有公開方法都是 synchronized 修飾的,而 StringBuilder 並沒有 StringBuilder 修飾。 StringBuffer 程式碼片段:@Override public synchronized StringBuffer append(String str) { toStringCache = null; super.append(str); return this; }
區別2:緩衝區
StringBuffer 程式碼片段:private transient char[] toStringCache; @Override public synchronized String toString() { if (toStringCache == null) { toStringCache = Arrays.copyOfRange(value, 0, count); } return new String(toStringCache, true); }
@Override public String toString() { // Create a copy, don't share the array return new String(value, 0, count); }
區別3:效能
既然StringBuffer 是執行緒安全的,它的所有公開方法都是同步的,StringBuilder 是沒有對方法加鎖同步的,所以毫無疑問,StringBuilder 的效能要遠大於StringBuffer。相關學習推薦:#
以上是string中stringbuffer和stringbuilder的差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!