String 跟其他两个类的区别是

    String是final类型,每次声明的都是不可变的对象,
    所以每次操作都会产生新的String对象,然后将指针指向新的String对象。

    StringBuffer,StringBuilder都是在原有对象上进行操作

    所以,如果需要经常改变字符串内容,则建议采用这两者。

    StringBuffer vs StringBuilder

    前者是线程安全的,后者是线程不安全的。
    线程不安全性能更高,所以在开发中,优先采用StringBuilder.
    StringBuilder > StringBuffer > String