string stringbuffer stringbuil
2019-02-14 本文已影响0人
小白修仙之路
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是线程非安全的。