У меня есть два метода для чтения в строке и создание объектов Character:
static void newChar(String string) {
int len = string.length();
System.out.println("Reading " + len + " characters");
for (int i = 0; i < len; i++) {
Character cur = new Character(string.charAt(i));
}
}
и
static void justChar(String string) {
int len = string.length();
for (int i = 0; i < len; i++) {
Character cur = string.charAt(i);
}
}
Когда я запускаю методы с использованием строки символов 18 554 760, я получаю дико разное время выполнения. Выход, который я получаю:
newChar took: 20 ms
justChar took: 41 ms
При меньшем входе (4 638 690 символов) время не так разнообразно.
newChar took: 12 ms
justChar took: 13 ms
Почему в этом случае новый настолько эффективен?
EDIT:
Мой тестовый код довольно хаки.
start = System.currentTimeMillis();
newChar(largeString);
end = System.currentTimeMillis();
diff = end-start;
System.out.println("New char took: " + diff + " ms");
start = System.currentTimeMillis();
justChar(largeString);
end = System.currentTimeMillis();
diff = end-start;
System.out.println("just char took: " + diff+ " ms");