String、StringBuilder、StringBuffer之间的区别

String、StringBuilder、StringBuffer之间的区别

Stirng类内部维护了final属性的char数组,不可变且不能被继承,不能操作自身,如果操作自身的话,会创建一个新的String对象到常量缓冲区,将原来的引用指向新的String对象。

  • 线程安全的。因为final修饰的char数组。
  • 因为Map中的key常使用String类,String存放在常量缓冲区中,可以方便存取。

StringBuilder类维护了char数组,但是可以操作自身,效率较高,但是线程不安全。

StringBuffer类维护了char数组,类似StringBilder,不过每个方法都加上了synchronized,线程安全,但是效率比StringBuilder低。

 

效率StringBuilder -> StringBuffer-> String(由高到低)

posted @ 2022-03-12 15:44  牵魂  阅读(38)  评论(0)    收藏  举报