String、StringBuffer和StringBuilder的区别

String、StringBuffer和StringBuilder的区别

可变与不可变

String是不可变字符串(字符数组用final关键字修饰
StringBuffer、StringBuilder是可变字符串

字符串修改

String每次字符串修改,都会生成一个新的String对象,然后将指针指向新的 String 对象。
StringBuffer和StringBuilder修改字符串使用append方法添加,insert插入,replace替换,delete删除。

是否实现equals和hashCode方法

String重写了equals和hashCode方法
StringBuffer和StringBuilder没有重写

是否线程安全

String和StringBuilder线程不安全
StringBuffer线程安全(方法用synchronized关键字修饰

原文地址:https://www.cnblogs.com/bendandedaima/p/13526138.html