我知道对于连接两个string对象,StrinbBuilder是很好用的。我想知道在这样做的时候发生了什么:
"a" + i + "b";哪个选项是最快、最安全的:
1.
int i = 0;
String a = "a" + i + "b";2.
int i = 0;
String a = "a".concat(String.valueOf(i)).concat("b");3.
int i = 0;
String a = String.format("a%db", i);发布于 2013-10-26 22:49:02
对于字符串连接来说,它们都不是真正最优的。一定要使用StringBuilder,但要正确使用它,不要每次都丢弃它:
StringBuilder a = new StringBuilder("a");
for(int i = 0;i<10;i++){
a.append("b");
}这将执行此操作,而无需每次都创建新的String对象。
发布于 2013-10-26 22:55:05
它们都不是很好--您仍然在幕后创建一个StringBuilder,然后立即将其丢弃。以下是另外两个选项:
StringBuilder并循环。builder.toString();
Strings.repeat()方法,并将结果连接到一个StringBuilder。9).toString(); a=新建StringBuilder("a").append(Strings.repeat("b",String
在性能方面,真的没有太多需要改进的地方-在某种程度上,您创建的是n个字符串。我们唯一可以实际改进的就是内存开销。
发布于 2013-10-27 14:11:19
因为字符串在java中是不可变的,所以每次当您执行字符串操作时,都会产生一个新的字符串对象,如果应该考虑内存,则不能使用带"+“号的字符串连接,因为它会创建多个字符串对象,并且不能保证清除,因为当垃圾收集器运行时,您不知道,您还应该考虑操作应该是线程安全的,因此在使用字符串缓冲区和字符串生成器时要小心。
https://stackoverflow.com/questions/19608012
复制相似问题