String,StringBuffer,StringBuilder聯絡,區別
阿新 • • 發佈:2018-11-28
三者的不同點:
看原始碼可以發現String類使用字元陣列來儲存字串,陣列是final修飾的,也沒有insert() append()delete()這些方法,String物件是一個常量
/** The value is used for character storage. */
private final char value[];
StringBuffer,StringBuilder物件都是變數,都有insert() append()delete()這些方法 StringBuffer,StringBuilder共同點 :
都繼承了AbstractStringBuilder這個抽象類。在抽象類中定義了一些子類的公共方法,子類只需要新增新的功能就可以了,不需要重寫已經存在的方法。
StringBuffer,StringBuilder不同點:
1)StringBuffer中的方法有synchronized關鍵字修飾,加上了同步鎖,因此是執行緒安全的。而StringBuilde的方法沒有加synchronized不是執行緒安全的。
2)由於StringBuffer中的方法有同步鎖,多以效率低一些,在單執行緒的時候,還是沒有同步鎖的StringBuilder效率高一些。
StringBuffer,StringBuilder物件都是變數,都有insert() append()delete()這些方法 StringBuffer,StringBuilder共同點