1、可变性
String:是不可变的、其内部是fianl修饰的,每次变更都会创建一个新的对象。
StringBuffer、StringBuilder是可变的,字符串的变更是不会创建新对象的。
2、线程安全性
String是不变的,线程安全的。
StringBuffer是线程安全的,每次操作方法是都会添加synchronized同步关键字。
StringBuilder不是线程安全的。
3、性能方面
String的性能最低,因为每次修改字符串时都会创建新对象和内存。
StringBuffer因为是可变的,可以直接修改,但是因为添加了synchronized重量级锁,所以性能不如StringBuilder。
StringBuilder性能来说最优。
4、存储方便
String是存储在字符串常量中,而Stringbuffer和StringBuilder都存储在堆内存中。