String、StringBuffer、StringBuilder有什么区别

String是java语言非常基础和重要的类提供了构造器和管理字符串的各种基本逻辑。它是典型的Immutable类,被声明成为final class,所有的属性也都是final的。也由于它的不可变性,类似拼接、剪裁字符串等动作,都会产生新的String对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。

StringBuffer是为解决上面提到拼接产生太多中间对象的问题而提供的一个类,我们可以用append或者add方法,把字符串添加到已有序列的末尾或者指定位置。StringBuffer本质是一个线程安全的可修改字符序列,它保证了线程安全,也随之带来了额外的性能开销,所以除非有线程安全的需要,不然还是推荐使用它的后继者,也就是StringBuilder。

StringBuilder是java1.5中新增的,在能力上没有本质区别,但是它去掉了线程安全的部分,有效减小了性能开销,是绝大部分情况下进行字符串拼接的首选。

猜你喜欢

转载自blog.csdn.net/dd2016124/article/details/81436504