- http://blog.xuite.net/jane17512001/PenguinDesign/116288109-%E5%AD%97%E4%B8%B2%E8%99%95%E7%90%86(String%E3%80%81StringBuilder%E3%80%81StringBuffer)
- http://puremonkey2010.blogspot.tw/2011/11/java-string-stringbuffer-stringbuilder.html
2.特性介紹:
- String
每次對 String 類型進行改變的時候其實都等同於生成了一個新的 String 對象,然後將指針指向新的 String 對象,所以經常改變內容的字符串最好不要用 String ,因為每次生成對像都會對系統性能產生影響
- StringBuffer
每次結果都會對 StringBuffer 對象本身進行操作,而不是生成新的對象,再改變對象引用。所以在一般情況下我們推薦使用 StringBuffer
(Java.lang.StringBuffer 可將字符串緩衝區安全地用於多個線程。可以在必要時對這些方法進行同步)
-StringBuilder
從 JDK 5.0 開始,為該類增添了一個單個線程使用的等價類,即 StringBuilder 。與 StringBuffer 相比,通常應該優先使用 StringBuilder 類,因為它支持所有相同的操作,但由於它不執行同步,所以速度更快!
3.結論(效率)
1.在大部分情況下 StringBuffer > String
例外情況:
- String 較快
String S1 = "This is only a" + "simple" + "test";- String 較慢
String S2 = "This is only a"; String S3 = "simple"; String S4 = "test"; String S1 = S2 +S3 + S4;
2.在不考慮多執行緒的情況下 StringBuilder > StringBuffer ,因為它支持所有相同的操作,但由於它不執行同步,所以速度更快!
沒有留言:
張貼留言