String,StringBuffer和StringBuilder的异同
String,StringBuffer和StringBuilder的的源代码已经在本博客的JDK源代码学习系列中有了具体的介绍:
StringBuffer 和StringBuilder 源代码: http://blog.csdn.net/sheepmu/article/details/27123541
同样点: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.