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

是否有“最快的方式”在Java中构造字符串?

哈扬
2023-03-14
问题内容

我通常通过以下方式在Java中创建一个String:

字符串foo =“ 123456”;

但是,我的讲师向我坚持说,使用该format方法形成String 如下:

String foo = String.format(“%s”,123456);

快很多。

他还说,使用StringBuilder类甚至更快。

StringBuilder sb = new StringBuilder();
字符串foo = sb.append(String.format(“%s”,123456))。toString();

如果有 一个,创建字符串的最快方法是哪 一个

它们可能不是100%准确的,因为我可能不太记得它们。


问题答案:

如果只有一个字符串,则:

String foo = "123456";

是最快的。您会注意到该String.format行已"%s%"在其中声明,因此我看不到讲师怎么可能认为这更快。另外,您还有一个方法调用。

但是,如果您要在一段时间内构建字符串(例如在for循环中),则需要使用StringBuilder。如果您只是使用它,+=那么
每次+=调用该行时都在构建一个全新的字符串。StringBuilder更快,因为它拥有一个缓冲区,并在每次调用时追加到该缓冲区append



 类似资料:
  • 问题内容: 在Java中,迭代字符串中所有字符的最快方法是: 或这个: 编辑: 我想知道的是,在长时间的迭代过程中重复调用该方法的开销是否小于或大于在开始时执行一次单次调用然后在迭代过程中直接访问数组的开销。 如果有人能够针对不同的字符串长度提供可靠的基准测试,那将是非常不错的,同时考虑到JIT的预热时间,JVM的启动时间等,而不仅仅是两个调用之间的区别。 问题答案: 在我的AMDx64 8cor

  • 问题内容: 在Java中比较两个字符串最快的方法是什么? 有没有比平等更快的东西? 编辑:我不能帮助澄清问题。 我有两个按字母顺序排列且大小完全相同的字符串 示例:abbcee和abcdee 字符串最长为30个字符 问题答案: 我不认为 Sun Oracle还没有最大程度地优化标准。因此,我希望它已经是最快的方法。如果您想了解他们如何实现它,请看一下它的源代码。这是摘录:

  • 问题内容: 我支持一个工作中的通用库,该库对给定的字符串执行许多检查以查看其是否为有效日期。Java API,commons- lang库和JodaTime都具有可以解析字符串并将其转换为日期的方法,以告知您它实际上是否是有效日期,但我希望有一种方法在不实际创建日期对象的情况下进行验证(或使用JodaTime库的日期时间)。例如,这是一段简单的示例代码: 这对我来说似乎很浪费,我们正在丢弃产生的对

  • 在Ruby中检查字符串是否匹配正则表达式的最快方法是什么? 我的问题是,我必须在一个庞大的字符串列表中“eGrep”,以找到哪些字符串与运行时给出的正则表达式相匹配。我只关心字符串是否匹配正则表达式,而不是它匹配的位置,也不关心匹配组的内容是什么。我希望这个假设可以用来减少我的代码在匹配正则表达式上花费的时间。 我用 是否有其他的技巧或捷径可以用来使这个测试更快?

  • 问题内容: 检查字符串是否仅包含字母数字字符的最快方法是什么。 我有一些代码会占用大量CPU,我想知道是否有比使用预编译正则表达式更快的方法。 问题答案: 我已经编写了使用正则表达式(根据其他答案)与不使用正则表达式进行比较的测试。在运行Java 1.6的四核OSX10.8计算机上进行的测试 有趣的是,使用正则表达式比手动迭代字符串要慢5到10倍。此外,该功能比的速度略快。一种支持允许扩展Unic

  • 在Java中,我看到了将转换为的四种选择。 我认为第一个是最慢的。第二个很方便。我推测第三个可能会返回一个先前创建的< code>String实例,但我不确定,API文档也没有这么说。这同样适用于选项四。这种实例的重用是非常幸运的,因为基于散列的查找可以利用< code>String中的< code>hashCode()缓存。(哪个特性也没有在API文档中描述,但是很多人告诉我。) 我来自C语言,