StringBuffer 是线程安全的,因为它的关键方法(比如 append、insert、delete 等)都是同步的,即通过 synchronized 关键字加锁来保证线程安全性。这意味着当多个线程同时操作同一个 StringBuffer 对象时,只有一个线程能够进入关键方法,其他线程需要等待,确保了线程安全性。
但是,由于 synchronized 关键字会引入性能开销,因此在不需要线程安全的情况下,推荐使用 StringBuilder,它是非线程安全的,但性能更好。只有在需要线程安全性的场景下才使用 StringBuffer。