String,StringBuffer,StringBuilder的
阿新 • • 發佈:2018-12-17
一 相同點 都可以進行儲存字串,一般情況下效率StringBuilder>StringBuffer>String 二 不同點 String : String字串常量,是不可變的。因此每次定義或者改變String的值,其實是改變的該物件的引用,如果需要經常改變字串的值,會一直分配新的地址,導致記憶體中無引用的物件較多,當達到一定程度時,JVM的垃圾回收機制就會起作用,對系統性能會產生影響。因此這種情況不建議使用String。 StringBuffer: StringBuffer首先是執行緒安全的,其向外暴露的方法都使用了synchronized關鍵字修飾。使用這個型別每次結果都會對 StringBuffer 物件本身進行操作,而不是生成新的物件,再改變物件引用。所以在一般情況下我們推薦使用 StringBuffer 。示例如下: StringBuffer c = new StringBuffer(“b”); StringBuffer d = new StringBuffer(“b”); System.out.println(cd);(此處結果為false) //由於沒有重寫equals方法,因此此處比較的也是物件的引用即地址。 System.out.println(c.equals(d));(此處結果為false) StringBuffer g = c.append(“a”); System.out.println(c