鉴于toString()下面的两个实现,首选哪一个:
public String toString(){
return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
Run Code Online (Sandbox Code Playgroud)
要么
public String toString(){
StringBuilder sb = new StringBuilder(100);
return sb.append("{a:").append(a)
.append(", b:").append(b)
.append(", c:").append(c)
.append("}")
.toString();
}
Run Code Online (Sandbox Code Playgroud)
?
更重要的是,鉴于我们只有3个属性,它可能没有什么区别,但你会在什么时候从+concat 切换到 StringBuilder?
我刚在我的项目中发现了一些这样的sql查询构建:
return (new StringBuilder("select id1, " + " id2 " + " from " + " table")).toString();
Run Code Online (Sandbox Code Playgroud)
这是否StringBuilder达到了目标,即减少内存使用量?
我对此表示怀疑,因为在构造函数中使用了'+'(String concat运算符).这会占用与使用String相同的内存量,如下面的代码吗?我明白了,它在使用时有所不同StringBuilder.append().
return "select id1, " + " id2 " + " from " + " table";
Run Code Online (Sandbox Code Playgroud)
这两个语句在内存使用方面是否相同?请澄清.
提前致谢!
编辑:
顺便说一下,这不是我的代码.在一个旧项目中找到它.此外,查询不是我的示例中的查询.:)