String、StringBuffer和StringBuilder之间的区别

1、相同点:

String,StringBuffer,StringBuilder最终底层存储与操作的都是char数组,StringBuffer和StringBuilder都继承了AbstractStringBuilder

2、不同点:

String:char数组是final的,不可变,修改String时实际上是new一个新String对象返回,线程安全,频繁的增删操作时不建议使用

StringBuffer:线程安全(StringBuffer中的方法中加synchronized锁),多线程建议使用这个,修改值时实际上是修改底层的char数组,相比String,开销更小

StringBuilder:非线程安全的(StringBuilder中的方法中没加synchronized锁), 单线程使用这个更快,修改值时实际上是修改底层的char数组,相比String,开销更小

猜你喜欢

转载自blog.csdn.net/yaojie5519/article/details/81477449
今日推荐