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.