String StringBuilder StringBuffer
StringBuilder,StringBuffer 有同一个父类AbstractStringBuilder
都有一个 char 数组,String 数组大小不能改,由 final 修饰,修改之后返回一个新创建的String对象
StringBuilder,StringBuffer 的数组是继承 AbstractStringBuilder 中的 char 数组,含有扩容的方法,大小可变
字符拼接速度不同,String最慢,StringBuilder最快
线程安全
StringBuffer:线程安全,所有方法都有 synchronized 修饰
StringBuild:线程不安全
缓冲区
StringBuffer:获取 toString 直接充缓存区的 toStringCache 值来构造一个字符串
StringBuild:获取 toString每次复制一次字符数组,再构造一个字符串
性能
StringBuffer:线程安全,公开方法都是同步的。
StringBuild:线程不安全,没有加锁同步,性能更高