Чтение исходного кода для String#substring
(Java 1.7) похоже, что он повторно использует массив символов, но с различным смещением и длиной. Это означает, что если у меня есть гигантский String
, что я подстрока, начальная строка никогда не будет восстановлена GC (правда?).Использование памяти большой подстроки?
Что является самым простым способом убедиться, что гигантский String
исправлен? Я запускаю JavaSE-1.7.
(Для любопытных, я буду писать реализацию базисной в Java, чтобы уменьшить использование памяти. Ответ на этот вопрос имеет важное значение, чтобы избежать базисного дерева, используя больше памяти, чем это необходимо)
http://stackoverflow.com/questions/20081659/java-substring-memory-leak/20082582#20082582 смотрите на следующее. –
Можете ли вы обновить свой вопрос с помощью точной версии Java, которую используете? – Pshemo
Pshemo: Вопрос обновлен. – Ztyx