Если у меня есть ArrayList с несколькими элементами, и я хочу, чтобы очистить все элементы должны I:ArrayList указывая на новую ссылку он будет вызывать GC
- направь его на новую ссылку? Это вызовет GC? В Android, вызывающем GC, это не так хорошо.
- call arraylist.clear(). Вызывает ли я сам вызов GC для освобождения памяти?
Как насчет того, действительно ли аррайалист огромен? Я думаю, что у четкой плохой производительности, когда аррайалист огромен. Так что лучше указать на новую ссылку и просто позволить GC выполнить свою работу?
На самом деле, вызов вызова 'clear()' выполняет итерацию по массиву подстановки и установку каждой записи в «null» (а также сброс атрибута 'size'). Никакого звонка в ГК, никаких причудливых вещей. – Turing85
У вас нет контроля над сбором мусора. Тем не менее, если у вас есть 'ArrayList', который вы устанавливаете' null', * и не существует других ссылок на объекты, содержащиеся в списке до обнуления *, то эти объекты становятся * приемлемыми * для сбора мусора, когда JVM определяет, что это время. – Kon
«Я думаю, что у меня плохое представление» - что ты там делаешь? Добавление и удаление миллиардов элементов? Бьюсь об заклад, вы не – AdamSkywalker