- String是不可变的对象,每次对String类型进行改变的时候其实是产生了一个新的String对象,然后指针指向新的String对象。
- StringBuffer是线程安全的可变字符序列,需要同步的时候,则使用。
- StringBuilder线程不安全,速度更快,单线程使用。
总结:StringBuffer和StringBuilder都是可变的。所以每次修改String对象的值都是新建一个对象再指向这个对象。而使用StringBuffer则是对StringBuffer对象本身进行操作。所以字符串经常改变的情况下,使用StringBuffer要快些。
阅读自Java面试精选72题。