首頁  >  文章  >  Java  >  Java中StringBuffer和StringBuilder區別

Java中StringBuffer和StringBuilder區別

高洛峰
高洛峰原創
2017-01-22 11:44:221551瀏覽

早先用Java的時候,知道有個類別叫StringBuffer,用來拼接較長的字串。轉到C#之後,也有一個似類別功能的類別叫作StringBuilder,簡寫都是sb,非常好記。

再後來轉移回Java的時候,發現Java也有了StringBuilder,於是就好奇了一下為什麼在StringBuffer之後又推出了StringBuilder。

原來Java的StringBuilder(和C#一樣)是非線程安全的,而早先的StringBuffer則具有一定的線程安全屬性。當然,推出StringBuilder,主要也是因為它沒有必要在多執行緒的情況下使用。

常見的StringBuilder(或StringBuffer)的用例是:

public String toString() {
 return new StringBuilder()
  .append("Name: " + name)
  .append("Foo: " + foo)
  .append("Bar: " + bar)
  .toString();
}

在這種情況下,StringBuilder都不是一個類別成員,它只是一個局部變量,根本談不上多執行緒的問題。

於是,StringBuilder的引入帶來了非常大的性能提升,而且一點安全問題也沒有…

更多Java中StringBuffer和StringBuilder區別相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn