На первом этапе я запускаю этот код:
public class Demo {
public static void main(String[] args) {
String x = "x";
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++)
{
x = x.concat("s");
// x+="k";
}
System.out.println(System.currentTimeMillis() - start);
}
}
Вышло: 13579.
На втором шаге я запускаю этот код:
public class Demo {
public static void main(String[] args) {
String x = "x";
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++)
{
//x = x.concat("s");
x+="k";
}
System.out.println(System.currentTimeMillis() - start);
}
}
Вышло: 27328.
И у меня два вопроса:
- Могу ли я сказать, что мой бенчмарк - правильный?
- Почему такая большая разница во времени между (+) и concat()??? 13,5 сек против 27 сек. Почему?