面試題04-String-StringBuffer-StringBuilder
阿新 • • 發佈:2021-10-25
- String是final修飾的,不可變,每次操作都會產生新的String物件
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence,
Constable, ConstantDesc {
......
}
- StringBuffer和StringBuilder都是再原物件上操作
- StringBuffer是執行緒安全的,StringBuilder是執行緒不安全的
- StringBuffer方法都是synchronized修飾的
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, Comparable<StringBuffer>, CharSequence { /* ...... */ @Override public synchronized int compareTo(StringBuffer another) { return super.compareTo(another); } @Override public synchronized int length() { return count; } @Override public synchronized int capacity() { return super.capacity(); } @Override public synchronized void ensureCapacity(int minimumCapacity) { super.ensureCapacity(minimumCapacity); } /* ...... */ }
- 效能:StringBuilder>StringBuffer>String
- 使用場景:
經常需要改變字串內容時使用後面兩個
優先使用StringBuilder,多執行緒使用共享變數時使用StringBuffer