Возможный дубликат:
Должен ли я использовать String.format() Java, если производительность важна?
Мне было интересно, хорошо ли использовать String.format
в Java-приложениях вместо StringBuilder
... поэтому просто напишу простой тест, например:
public static void main(String[] args) {
int i = 0;
Long start = System.currentTimeMillis();
while (i < 10000) {
String s = String.format("test %d", i);
i++;
}
System.out.println(System.currentTimeMillis() - start);
i = 0;
start = System.currentTimeMillis();
while (i < 10000) {
String s = new StringBuilder().append("test ").append(i).toString();
i++;
}
System.out.println(System.currentTimeMillis() - start);
}
И результаты, где:
238
15
Итак, если мой тест действителен, StringBuilder
быстрее, чем String.format
. ОК.
Теперь я начинаю думать, как работает String.format
. Является ли это простой конкатенацией строк, например "test " + i
?
Каковы различия между конкатенацией StringBuilder
и String.format
? Есть ли способ простой как String.format
и быстрый, как StringBuilder
?