StringBuffer和StringBuilder区别

StringBuffer、StringBuilder和String一样,也用来代表字符串。

String类是不可变类,任何对String的改变都 会引发新的String对象的生成;

StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象;

StringBuilder也是可变类,任何对它所指代的字符串的改变都不会产生新的对象;

StringBuffer和StringBuilder这两个可变类的原理和操作基本相同。

 

StringBuffer和StringBuilder类的主要区别:

在于StringBuffer支持并发操作,线性安全的,适合多线程中使用。

StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用。

StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高。

对这两个类的使用规则:

  • (1)基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。

  • (2)不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类,这在Java的优化上是一条比较重要的原则。

 

 

posted @ 2021-05-07 19:53  一名不断学习的程序猿  阅读(1302)  评论(0)    收藏  举报