可变性:
String 是final修饰的不可变类,每次修改值都会产生新的对象,而StringBuffer和StringBuilder是可变类,每次修改值不会产生新的对象
线程安全:
StringBuilder不是线程安全的,String、StringBuffer是线程安全的
String是不可变类,StringBuffer的每个方法都有Sychonized关键字
存放位置:
String是放在常量池,StringBuffer和StringBuilder放在堆内存空间
性能:
StringBuilder性能最好。
String是不可变类,每次更改值的时候都要重新创建对象和分配内存。
StringBuffer的执行方法都有加同步锁。
包括Java中移去指针,避免内存泄漏(java和C++的区别)
转换成StringBuider然后通过调用append方法,最后再调用toString()转换回去