之前只知道StringBuilder是线程不安全的,StringBuffer是线程安全的。但是核心细节都记不清楚,学习一下。
先上两个类的示意图
StringBuilder:
StringBuffer:
区别1:StringBuffer 线程安全,StringBuilder 不安全:
a. StringBuffer 使用 synchronized 修饰,使其线程安全。下图是StringBuffer的代码。
b. StringBuilder代码
区别2. 性能(StringBuilder优于StringBuffer)
由于StringBuffer 使用synchronized关键字保证其同步性能