StringBuilder和StringBuffer都适用于对String字符串的多次修改。这两个类可以在不产生新的对象的情况下来对字符串进行修改。但StringBuffer是线程安全的,它的方法都被synchronized关键字修饰,保证了多线程环境下的安全性。而StringBuilder是非线程安全的,它的方法没有被synchronized关键字修饰,因此在单线程环境下性能更好。
StringBuilder和StringBuffer与String在底层都是用char数组来进行存储,但StringBuilder和StringBuffer类中的char数组没有被final修饰,这也是他们可以在不产生新的对象的情况下来对字符串进行修改的直接原因。