1.从不变和可变来说:
String是不变的,String每次修改都要创建新的对象,其不可变所以不可被继承
StringBuffer和StringBuilder是可变的
2.从多线程安全来说:
String是线程安全的,毕竟每次修改都要创建对象
StringBuffer是线程安全的,被synchronized关键字修饰
StringBuilder是线程不安全的,没有被synchronized修饰
3.从性能来说
String<StringBuffer<StringBuilder
毕竟每次创建对象这都是需要消耗大量的资源
用线程安全也要消耗大量的资源
所以说看具体清情况,如果是单线程,不需要大量的修改,建议使用String
如果是多线程,需要大量的修改,那么StringBuffer
如果是单线程,需要大量的修改,那么StringBuilder