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

何时在Java中使用StringBuilder

何时在Java中使用StringBuilder

精慕HU 2019-06-29 17:19:49
何时在Java中使用StringBuilder一般认为最好使用StringBuilder用于Java中的字符串连接。总是这样吗?我的意思是:创建一个StringBuilder对象,调用append()方法与最终toString()已经较小,然后将现有字符串与+运算符用于两个字符串,还是只适用于多(多于两个)字符串?如果存在这样的阈值,它依赖于什么(可能是字符串长度,但以哪种方式)?最后,您是否可以交换可读性和简洁性?+的性能的级联。StringBuilder在较小的情况下,如两根、三条或四根弦?明示使用StringBuilder对于定期连接,在过时的Java优化技巧以及爪哇城市神话.
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

如果在循环中使用字符串连接,如下所示,

String s = "";for (int i = 0; i < 100; i++) {
    s += ", " + i;}

那么您应该使用StringBuilder(不是StringBuffer)而不是String,因为它更快,消耗的内存更少。

如果你有一份声明,

String s = "1, " + "2, " + "3, " + "4, " ...;

然后你可以用String,因为编译器将使用StringBuilder自动的。


查看完整回答
反对 回复 2019-06-29
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

拉尔夫的回答太棒了。我宁愿使用StringBuilder类来构建/修饰字符串,因为它的使用更像是Builder模式。

public String decorateTheString(String orgStr){
            StringBuilder builder = new StringBuilder();
            builder.append(orgStr);
            builder.deleteCharAt(orgStr.length()-1);
            builder.insert(0,builder.hashCode());
            return builder.toString();}

它可以用作帮助器/构建器来构建字符串,而不是字符串本身。


查看完整回答
反对 回复 2019-06-29
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

作为一般规则,请始终使用更具可读性的代码,如果性能存在问题,则只使用重构。在这种特殊情况下,最近的JDK实际上会将代码优化为StringBuilder版本。

如果您在循环中执行字符串连接,或者在编译器无法轻松优化的复杂代码中执行字符串连接,则通常只需要手动执行。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 655 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号