Я запустил этот код, и у меня возникли вопросы, вроде как странно.
Использование String:
while(true)
{
String s = String.valueOf(System.currentTimeMillis());
System.out.println(s);
Thread.sleep(10);
}
Использование StringBuilder:
StringBuilder s = null;
while(true)
{
s = new StringBuilder();
s.append(System.currentTimeInMillis());
System.out.println(s);
Thread.sleep(10);
}
В обоих случаях они застревают в 12540 K трата памяти. Выполнение этого теста в Windows XP с пакетом обновления 2.
Почему они тратят столько же памяти?
Почему неизменяемая строка перестала тратить память?
Не по теме: Как преобразовать StringBuilder
в массив байтов, закодированный в определенной кодировке? Ошибка