Java学习笔记28:String,StringBuffer,StringBuilder的区别

String,StringBuffer,StringBuilder的区别是什么?String为什么是不可变的?

  • String是字符串常量,StringBuffer和StringBuilder是字符串变量。
  • StringBuffer是线程安全的,StringBuilder是非线程安全的。
  • 具体来说String是一个不可变的对象,每次修改String对象实际上是创新新对象,并将引用指向新对象。效率很低。StringBuffer是可变的,即每次修改只是针对其本身,大部分情况下比String效率高,StringBuffer保证同步(synchronized),所以线程安全。
  • StringBuilder没有实现同步,所以非线程安全。但效率应该比StringBuffer高。StringBuffer使用时最好指定容量,这样会比不指定容量快30%-40%,甚至比不指定容量的StringBuilder还快。

1.String,StringBuffer,StringBulilder终极总结
https://blog.csdn.net/aA518189/article/details/79144103

2.StringBuffer 详解
https://blog.csdn.net/qq_31059475/article/details/71433678

猜你喜欢

转载自blog.csdn.net/qq_30242987/article/details/85793626
今日推荐