在Java中使用afor字符串连接通常更可取。情况总是这样吗?StringBuilder
我的意思是:创建对象、调用方法并最终已经更小的开销是将现有字符串与两个字符串的运算符连接起来,还是只建议多个(超过两个)字符串?StringBuilder
append()
toString()
+
如果有这样的阈值,它取决于什么(也许是字符串长度,但以何种方式)?
最后,您是否会牺牲串联的可读性和简洁性,以换取较小情况下(如两个、三个或四个字符串)的性能?+
StringBuilder
在过时的Java优化技巧以及Java城市神话中,显式使用常规连接被认为是过时的。StringBuilder
如果你在循环中使用字符串连接,像这样,
String s = "";
for (int i = 0; i < 100; i++) {
s += ", " + i;
}
那么你应该使用 a (not ) 而不是 ,因为它更快,消耗的内存更少。StringBuilder
StringBuffer
String
如果你有一个语句,
String s = "1, " + "2, " + "3, " + "4, " ...;
然后你可以使用 s,因为编译器会自动使用。String
StringBuilder
拉尔夫的回答很棒。我宁愿使用 StringBuilder 类来构建/装饰 String,因为它的用法更像 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();
}
它可以用作构建字符串的帮助程序/构建器,而不是字符串本身。
作为一般规则,始终使用更具可读性的代码,并且仅在性能出现问题时才进行重构。在这种特定情况下,最新的JDK实际上在任何情况下都会将代码优化为StringBuilder版本。
通常,只有在循环中或在编译器无法轻松优化的某些复杂代码中进行字符串连接时,才真正需要手动执行此操作。
模板简介:该模板名称为【何时在 Java 中使用 StringBuilder】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。