1.它们都是使用字符数组保存字符串,String有final修饰符,所以String对象是不可变的,而StringBuilder和StringBuffter的对象是可变的。
2.StringBuilder和StringBuffter都继承自AbstractStringBuilder抽象类,都会调用父类中的公共方法,其中StringBuffter对方法加了synchronized关键字(同步锁),所以是线程安全的;而StringBulider是非线程安全的。
3.在单线程中,使用StringBulider效率高于StringBuffter.