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

字符串连接中使用“ +”会影响效率吗?

郏瀚
2023-03-14
问题内容

我在Java中使用过String,StringBuilder和StringBuffer。
当我从效率的角度思考时,我想到了这个问题。

字符串连接中使用“ +”会影响效率吗?


问题答案:

是的,但是在大多数情况下都没关系。

对字符串常量使用“ +”是最有效的方法,因为编译器可以执行串联操作。

如果要连接两个String,则该concat方法效率最高,因为它避免使用StringBuilder。

除了向后兼容以外,几乎没有理由使用StringBuffer。StringBuilder或StringWriter是更好的选择。但是,它仍然比JDK中的StringBuilder显式使用更多:P

StringBuffer已死,StringBuffer长寿



 类似资料:
  • 问题内容: 我突然在我的java-app(使用NetBeans作为IDE)中创建记录器时,突然看到一条警告:“记录器中字符串连接使用效率不高”。 我的原始代码是 但是NetBeans建议将此代码转换为模板(“模板”在这里意味着什么?),并提供以下代码: 这两种串联方式有什么不同,尽管我从未使用过后者。 干杯。 问题答案: 我会忽略该警告(如果可能,请将其关闭)。串联的效率不是那么低,因为现代编译器

  • 问题内容: 我正在研究Java-8中引入的新添加的现有功能。新添加到String类的一个简单功能对我来说很有吸引力-即String Join方法 。 例: 出于好奇,我已经通过编写简单的Java代码检查了此功能的性能(执行时间) 结果对我来说并不那么令人兴奋(以秒为单位的时间) 复杂度为o(n)–实际上为(n *单个元素长度的大小) 我没有测量过的其他性能指标(内存等)。 我的问题是: 我的测量有

  • 问题内容: 以下作品: 以下失败: 上面的错误消息是: DBAPIError:(错误)(“ 08001”,“ [08001] [unixODBC] [FreeTDS] [SQL Server]无法连接到数据源(0)(SQLDriverConnectW)”)无无 有人能指出我正确的方向吗?有没有一种方法可以简单地告诉sqlalchemy将特定的连接字符串传递给pyodbc? 请注意: 我想保留此DS

  • 问题内容: 我使用来了解Java与运算符的工作方式。 它是用同样的操作? 问题答案: 不。使用和做不一样。 在Java中,字符串实例是不可变的。 因此,如果您这样做: 每次连接时都在创建新的字符串。 另一方面,StringBuilder就像一个缓冲区,可以在追加新Strings时根据需要增长。 经验法则是(由于我的评论而改变): 如果要进行大量连接(例如,在循环内进行连接,或生成由多个字符串连接的

  • python中的字符串是不可变的对象。更改字符串应该会创建一个新对象,从而创建一个新id。 出于某种原因,当我尝试执行一个简单的字符串连接时,有时id会改变,有时则不会。我注意到当我所做的更改很小时,它往往不会改变id,但这似乎不是一个足够好的解释。只是想知道为什么会发生这种情况。 这是我闲置shell的截图。如果有人能解释一下,我会非常感激:) id有时更改,有时不更改的示例

  • 问题内容: 在JavaScript中,我有一个包含许多迭代的循环,并且在每个迭代中,我正在创建一个包含许多运算符的巨大字符串。有没有更有效的方式来创建字符串?我正在考虑创建一个动态数组,在该数组中不断向其中添加字符串,然后进行联接。谁能解释并举例说明最快的方法吗? 问题答案: 基于JSPerf的基准测试,似乎是使用最快的方法,尽管不一定在每个浏览器中都使用。 为了在DOM中构建字符串,最好先将字符