Встречается на собеседованиях • сегодня
Сколько займется памяти при вызове 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.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы