String是final修饰的,不可变,每次操作都会产生新的String对象
StringBuffer和StringBuilder都是在原对象上操作,是可变的。
StringBuffer是线程安全的,StringBuffer方法都是synchronized修饰的;
StringBuilder线程不安全的, 所以在单线程环境下StringBuilder效率会更高
性能: StringBuilder > StringBuffer > String
场景: 经常需要改变字符串内容时使用后面两个
优先使用StringBuilder, 多线程使用共享变量时使用StringBuffer