一尘不染

StringBuffer已过时?

java

在《有效的Java》一书中,乔希·布洛赫(Josh Bloch)说

StringBuffer在很大程度上已经过时,应该由非同步的实现’StringBuilder’代替

但是根据我的经验,我仍然看到StringBuffer类的广泛使用。为什么StringBuffer类现在已过时,为什么除了由于非同步而提高了性能之外,为什么StringBuilder比StringBuffer更受青睐?


阅读 332

收藏
2020-12-03

共1个答案

一尘不染

Java 1.5上的 新代码通常应该使用,这已经过时了StringBuilder- 真正需要以线程安全的方式构建字符串的情况 很少
见,那么为什么要支付同步费用呢?

我怀疑您看到使用的代码StringBuffer大多属于以下类别:

  • 在Java 1.5之前编写
  • 旨在保持与旧版JDK的兼容性
  • 由不了解的人撰写 StringBuilder
  • 由不知道的工具自动生成 StringBuilder
2020-12-03