String,StringBuffer和StringBuilder的异同

时间:2023-12-21 20:40:38
                                                               
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.