string stringbuffer stringbuilder区别

String、StringBuffer、StringBuilder的区别;

1. String对象是不可改变的。

2. 如果要修改字符串而不创建新的对象,则可以使用 StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。

3. 由于 String 的值一旦创建就不能再修改,所以称它是恒定的。看似能修改 String 的方法实际上只是返回一个包含修改内容的新 String。

4. StringBuffer可改变的Unicode字符序列,允许并发操作,是线程安全的。

5.  StringBuilder:可改变的Unicode字符序列操作同StringBuffer,只是不支持并发操作,非线程安全的 。

6. 不考虑线程安全前提下,StringBuilder性能最高,StringBuffer次之,String比较差。  为什么StringBuffer的性能比String高?主要原因在于String类是不可变类,任何对String引用指向的字符串作出的修改都会导致生成新的字符串(对象),而对StringBuffer的修改则不会导致新对象的产生。

那么为什么StringBuilder的性能比StringBuffer的高呢?这则与线程安全有关。StringBuilder是线程非安全的。

你可能感兴趣的:(string stringbuffer stringbuilder区别)