String,StringBuffer和StringBuilder的異同
String,StringBuffer和StringBuilder的的源碼已經在本部落格的JDK源碼學習系列中有了詳細的介紹:
String 源碼:
StringBuffer 和StringBuilder 源碼:
相同點:1.三者都是final類,不能被繼承。
不同點:1. String 是不可變類,而 StringBuffer和StringBuilder是可變的。
2.String 中的成員變量 value,siaze,count都是final修飾的,不可改變,而 StringBuffer和StringBuilder 同繼承于 AbstractStringBuilder,成員變量沒有被final修飾。
3.StringBuffer自從jdk1.0就有了,而StringBuilder是jdk1.5 才引入。
4.StringBuffer 是線程安全的,但是 慢。
5.StringBuilder是非線程安全的,但是 快。
6.少量資料拼接用String的“+”;大量資料多線程時用StringBuffer;大量資料單線程時用StringBuilder.