面试题答案
一键面试性能差异
- StringBuffer:线程安全,所有公开方法都被
synchronized
关键字修饰。在单线程环境下,由于锁机制的存在,性能相对较差。 - StringBuilder:线程不安全,没有使用同步机制,在单线程环境下性能优于
StringBuffer
。
StringBuffer在多线程环境下的性能瓶颈及原因
- 性能瓶颈:多个线程竞争锁资源,导致线程阻塞,从而降低整体性能。
- 原因:
StringBuffer
通过synchronized
关键字实现线程安全,这意味着在同一时刻,只能有一个线程能够访问其同步方法。当多个线程同时尝试调用这些方法时,除了获得锁的线程外,其他线程都需要等待,增加了线程上下文切换的开销,进而影响性能。