StringBuffer 已过时? [英] StringBuffer is obsolete?

查看:42
本文介绍了StringBuffer 已过时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Effective Java"一书中,Josh Bloch 说

In the book "Effective Java", Josh Bloch says that

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

StringBuffer is largely obsolete and should be replaced by the non-synchronized implementation 'StringBuilder'

.

但根据我的经验,我仍然看到 StringBuffer 类的广泛使用.为什么 StringBuffer 类现在已经过时了,为什么 StringBuilder 应该优于 StringBuffer 除了由于非同步而提高性能?

But in my experience, I've still seen widespread use of the StringBuffer class. Why is the StringBuffer class now obsolete and why should StringBuilder be preferred over StringBuffer except for the increased performance due to non-synchronization?

推荐答案

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

It's obsolete in that new code on Java 1.5 should generally use StringBuilder - it's very rare that you really need to build strings in a thread-safe manner, so why pay the synchronization cost?

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

I suspect code that you see using StringBuffer mostly falls into buckets of:

  • 在 Java 1.5 之前编写
  • 编写以保持与旧版 JDK 的兼容性
  • 由不了解 StringBuilder 的人撰写
  • 由不了解 StringBuilder 的工具自动生成
  • Written before Java 1.5
  • Written to maintain compatibility with older JDKs
  • Written by people who don't know about StringBuilder
  • Autogenerated by tools which don't know about StringBuilder

这篇关于StringBuffer 已过时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆