String、StringBuffer 和 StringBuilder 有什么区别?
先自己想一想,再看参考要点
参考要点
- 可变性:String 不可变,StringBuffer 和 StringBuilder 可变
- 线程安全:String 因不可变而线程安全,StringBuffer 的方法用 synchronized 同步,StringBuilder 不加锁,单线程拼接时用它
- 循环中拼接字符串应在循环外建一个 StringBuilder 调用 append(),用 + 每次都会创建新对象并复制内容