当前位置: 首页 > 面试题库 >

StringBuffer已过时?

邢昂然
2023-03-14
问题内容

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

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

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


问题答案:

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

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

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


 类似资料:
  • 描述 (Description) java.time.Matcher.appendTail(StringBuffer sb)方法实现了一个终端追加和替换步骤。 声明 (Declaration) 以下是java.time.Matcher.appendTail(StringBuffer sb)方法的声明。 public Matcher appendTail(StringBuffer sb) 参数 (

  • 主要内容:1 Java.lang StringBuffer介绍,2 Java.lang StringBuffer声明,3 Java.lang StringBuffer方法,4 Java.lang StringBuffer案例1,5 Java.lang StringBuffer案例21 Java.lang StringBuffer介绍 Java StringBuffer类用于创建可变(可修改)字符串。Java中的StringBuffer类与String类相同,但它是可变的,即可以更改。 以下是关于

  • 主要内容:创建 StringBuffer 类,追加字符串,替换字符,反转字符串,删除字符串在 Java 中,除了通过 String 类创建和处理字符串之外,还可以使用 StringBuffer 类来处理字符串。StringBuffer 类可以比 String 类更高效地处理字符串。 因为 StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。 每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超

  • 问题内容: 请告诉我一个实时的情况来比较String,StringBuffer和StringBuilder? 问题答案: 如果使用的是JGraph,则应尝试为算法设计的。它的功能之一是使用库进行可视化。它仍然开发,但相当稳定。我前段时间分析了算法的复杂性。其中一些并不是最快的,但是如果你要自己实现它们并需要显示图形,那么它可能是最佳选择。我真的很喜欢使用它的API,当时我不得不快速编写一个在图形上

  • 描述 (Description) 当且仅当此String表示与StringBuffer中指定的字符序列相同时,此方法才返回true。 语法 (Syntax) 以下是此方法的语法 - public boolean contentEquals(StringBuffer sb) 参数 (Parameters) 这是参数的细节 - sb - 要比较的StringBuffer。 返回值 (Return V

  • 问题内容: 当尝试使用ExpectedConditions显式等待某个元素变得可见时,Visual Studio警告我该元素现在已过时,将很快从Selenium中删除。 实现相同结果的当前/新方法是什么? 问题答案: 我解决了自己的问题,并想为其他任何想知道如何使用最新版本的Selenium解决此问题的人提供答案。 使用nuget搜索DotNetSeleniumExtras.WaitHelpers