猿问

何时在Java中使用StringBuilder

何时在Java中使用StringBuilder

一般认为最好使用StringBuilder用于Java中的字符串连接。总是这样吗?

我的意思是:创建一个StringBuilder对象,调用append()方法与最终toString()已经较小,然后将现有字符串与+运算符用于两个字符串,还是只适用于多(多于两个)字符串?

如果存在这样的阈值,它依赖于什么(可能是字符串长度,但以哪种方式)?

最后,您是否可以交换可读性和简洁性?+的性能的级联。StringBuilder在较小的情况下,如两根、三条或四根弦?

明示使用StringBuilder对于定期连接,在过时的Java优化技巧以及爪哇城市神话.


精慕HU
浏览 656回答 3
3回答

跃然一笑

如果在循环中使用字符串连接,如下所示,String&nbsp;s&nbsp;=&nbsp;"";for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;100;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;",&nbsp;"&nbsp;+&nbsp;i;}那么您应该使用StringBuilder(不是StringBuffer)而不是String,因为它更快,消耗的内存更少。如果你有一份声明,String&nbsp;s&nbsp;=&nbsp;"1,&nbsp;"&nbsp;+&nbsp;"2,&nbsp;"&nbsp;+&nbsp;"3,&nbsp;"&nbsp;+&nbsp;"4,&nbsp;"&nbsp;...;然后你可以用String,因为编译器将使用StringBuilder自动的。

至尊宝的传说

拉尔夫的回答太棒了。我宁愿使用StringBuilder类来构建/修饰字符串,因为它的使用更像是Builder模式。public&nbsp;String&nbsp;decorateTheString(String&nbsp;orgStr){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;builder&nbsp;=&nbsp;new&nbsp;StringBuilder(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;builder.append(orgStr); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;builder.deleteCharAt(orgStr.length()-1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;builder.insert(0,builder.hashCode()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;builder.toString();}它可以用作帮助器/构建器来构建字符串,而不是字符串本身。

MMMHUHU

作为一般规则,请始终使用更具可读性的代码,如果性能存在问题,则只使用重构。在这种特殊情况下,最近的JDK实际上会将代码优化为StringBuilder版本。如果您在循环中执行字符串连接,或者在编译器无法轻松优化的复杂代码中执行字符串连接,则通常只需要手动执行。
随时随地看视频慕课网APP

相关分类

Java
我要回答