为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的字符串连接复杂性

Java中的字符串连接复杂性

慕仙森 2021-06-29 09:11:01
我遇到了为什么 Java 中的字符串连接的运行时间为 O(N) 的问题。有人可以解释为什么会这样,以及使用 StringBuilder 类是否具有相同的复杂性?
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

每次连接字符串时,都会创建一个新缓冲区并复制内容。字符串在 Java 中是不可变的。

StringBuilder/StringBuffer 使用内部缓冲区,并且仅在您调用 toString() 时创建一个不可变的字符串。更少的复制和分配导致更快的代码。只有在内部缓冲区用完时才会进行复制和分配;您也可以控制该缓冲区大小。

现在,更令人困惑的是,一些基于 Java 的语言知道是否可以优化字符串,并在幕后创建字符串缓冲区,因此您并没有真正从使用基于缓冲区的类中受益。


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信