Встречается на собеседованиях • сегодня

Сколько займется памяти при вызове clear у 1 млн Integer в списке размером 48 Мб

Вызов `clear()` у `ArrayList` с 1 млн элементов освободит только ссылки на объекты, но сами объекты `Integer` останутся в памяти. Пример: ```java List list = new ArrayList<>(); for (int i = 0; i < 1_000_000; i++) { list.add(i); // автоупаковка в Integer } list.clear(); // размер массива внутри ArrayList останется ~48 Мб (1 млн * 4 байта ссылки) ``` **Нюансы:** - `clear()` уменьшает `size` до 0, но внутренний массив (`elementData`) не сжимается. - Память, занятая `Integer` (около 16 байт на объект), будет освобождена GC, если на них нет других ссылок. - Чтобы уменьшить размер массива, можно вызвать `trimToSize()` или создать новый `ArrayList`. Итог: после `clear()` останется ~48 Мб (если не делать `trimToSize()`), но реальное использование памяти зависит от GC.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы