【问题标题】:String vs String builder. which is faster? If stringbuilder then why use string [closed]字符串与字符串生成器。哪个更快?如果 stringbuilder 那么为什么使用 string [关闭]
【发布时间】:2020-07-25 18:12:22
【问题描述】:

我对更快的字符串和字符串生成器感到困惑,我知道字符串生成器在连接操作中比字符串更快。但是如果我不想使用连接操作怎么办。如果 stringbuilder 更快,为什么我们主要使用 string。

【问题讨论】:

标签: java string stringbuilder


【解决方案1】:

String 的优点在于它是不可变的:一旦构造,字符串实例的内容就不能再改变了。这意味着您通过引用传递字符串,而不是一直复制。

例如,假设您将StringBuilder 传递给一个类。然后你可以在之后更改那个StringBuilder 的内容,然后混淆课堂。因此,班级需要制作一份副本,以确保内容不会在不知情的情况下发生变化。对于String,这是不必要的,因为String 是不可变的。

现在,当您在构建字符串时,这种不变性实际上是一个问题,因为必须为每个连接创建一个新的 String 实例。这就是StringBuilder 类存在的原因:它是一个辅助类,旨在构建字符串(因此得名)。

实际上,通常不需要显式使用StringBuilder。当您编写String result = "some constant" + a + b; 之类的内容时,Java 编译器会自动为您使用StringBuilder。只有复杂的构建逻辑(例如,使用 iffor 块)您需要自己做。

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 2020-12-18
    • 2016-09-08
    • 1970-01-01
    • 2011-06-21
    • 2011-07-11
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多