gpt4 book ai didi

java - 连接运算符 (+) 与 concat()

转载 作者:IT老高 更新时间:2023-10-28 21:14:15 24 4
gpt4 key购买 nike

对于字符串连接,我们可以使用 concat() 或 concat 运算符 (+)

我尝试了以下性能测试,发现 concat() 是一种更快且内存高效的字符串连接方式。

100,000次的字符串连接比较:

String str = null;

//------------Using Concatenation operator-------------
long time1 = System.currentTimeMillis();
long freeMemory1 = Runtime.getRuntime().freeMemory();

for(int i=0; i<100000; i++){
str = "Hi";
str = str+" Bye";
}
long time2 = System.currentTimeMillis();
long freeMemory2 = Runtime.getRuntime().freeMemory();

long timetaken1 = time2-time1;
long memoryTaken1 = freeMemory1 - freeMemory2;
System.out.println("Concat operator :" + "Time taken =" + timetaken1 +
" Memory Consumed =" + memoryTaken1);

//------------Using Concat method-------------
long time3 = System.currentTimeMillis();
long freeMemory3 = Runtime.getRuntime().freeMemory();
for(int j=0; j<100000; j++){
str = "Hi";
str = str.concat(" Bye");
}
long time4 = System.currentTimeMillis();
long freeMemory4 = Runtime.getRuntime().freeMemory();
long timetaken2 = time4-time3;
long memoryTaken2 = freeMemory3 - freeMemory4;
System.out.println("Concat method :" + "Time taken =" + timetaken2 +
" Memory Consumed =" + memoryTaken2);

结果

Concat operator: Time taken = 31; Memory Consumed = 2259096
Concat method : Time taken = 16; Memory Consumed = 299592

如果 concat() 比运算符快,那我们什么时候应该使用串联运算符 (+)

最佳答案

concat 方法总是产生一个带有连接结果的新字符串。

加号运算符由 StringBuilder 创建支持,附加您需要的所有 String 值并进一步调用它的 toString()。

因此,如果您需要连接两个值,concat() 将是更好的选择。如果需要连接 100 个值,则应使用加号运算符或显式使用 StringBuilder(例如,在循环中追加的情况下)。

关于java - 连接运算符 (+) 与 concat(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8755063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com