Java 中StringBuffer和StringBuilder作用一样,都用在动态拼接字符串时代替String + ,提高性能。
其实它们两个也有性能和安全上的差别。
通过翻看JDK API 我发现StringBuffer是一个线程安全的可变字符串序列,通过反编译源码也可以看
到,其好多方法都加了synchronized关键字,都知道这个关键字实现线程同步,实现线程安全。
而StringBuilder没有实现线程安全。所以在性能上优于StringBuffer。
如果可能,建议优先采用StringBuilder,因为在大多数实现中,它比 StringBuffer 要快。当然如果是考虑线程安全的话,还是建议使用StringBuffer。
大多数时候我们好像都是使用的单线程,所以JDKAPI中也是建议使用StringBuilder。