相同点:
StringBuilder和StringBuffer都是可变字符串,String是不可变字符串
都是AbstractStringBuilder类的子类
不同点:
stringBuilder类中的方法没有使用synchronized关键字,所以它的方法都是“线程”不安全(返回值不准确),但是性能好
StringBuffer类中的方法使用synchronized关键字,所以它的方法都是“线程”安全,但是性能较差
synchronized关键字相当于“一把锁”,当其中一个“线程”在操作时,其他“线程”无法进行操作或访问
我们一般所使用的是 stringBuilder,原因是在使用过程中“线程”安全与否影响并不大,但是性能的影响显著。