我刚刚在我的项目中找到了一些sql查询构建:
return (new StringBuilder("select id1, " + " id2 " + " from " + " table")).toString();这个StringBuilder是否达到了它的目标,即减少内存使用?
我对此表示怀疑,因为在构造函数中使用了'+‘(字符串连接运算符)。这会占用与使用如下代码的字符串相同的内存量吗?据我所知,使用StringBuilder.append()时会有所不同。
return "select id1, " + " id2 " + " from " + " table";这两条语句的内存使用量是否相等?请澄清。
提前感谢!
编辑:
顺便说一句,这不是我的代码。在一个老项目里找到的。此外,查询也不像我的示例中的查询那么小。:)
发布于 2012-01-04 19:12:08
您的猜测是正确的,使用字符串构建器的目的没有达到,至少没有达到它的全部范围。
但是,当编译器看到表达式"select id1, " + " id2 " + " from " + " table"时,它会发出在幕后实际创建StringBuilder并附加到它的代码,因此最终结果并不是那么糟糕。
但当然,任何看过这些代码的人都会认为它有点迟钝。
https://stackoverflow.com/questions/8725739
复制相似问题